Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/07/2008, 14:52
Arija
 
Fecha de Ingreso: julio-2008
Mensajes: 26
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Concatenar Registros en Access 2003

Gracias Taribo007, en la dirección que me pasaste bajé un archivo de Access donde está desarrollado el módulo que concatena los registros. Pero ejecuto la consulta y solo me concatena siete u ocho registros. ¿Alguien me pude decir a que se debe? A continuación pego el módulo tal como está escrito:

Option Compare Database
Option Explicit

'Necesita una referencia a Microsoft DAO x.y Object Library
'Concatena los registros introducidos en un campo en un único dato.
'Parámetros:
' - NombreCampo: nombre del campo que contiene los datos a unir.
' - NombreTabla: nombre de la tabla que tiene el campo.
' - Criterio: Sentencia Where (sin el Where), que delimita los registros.
' - Separador: Carácter o caracteres que separarán los datos.
Public Function ConcatenarCampo(NombreCampo As String, _
NombreTabla As String, _
Optional Criterio As String = "", _
Optional Separador As String = " ") As String
Dim rst As DAO.Recordset
Dim strSql As String
Dim strSep As String
Dim strRes As String

If Nz(NombreCampo, "") <> "" Then
If Nz(NombreTabla, "") <> "" Then
strSql = "SELECT " & NombreCampo
strSql = strSql & " FROM " & NombreTabla

If Nz(Criterio, "") <> "" Then
strSql = strSql & " WHERE " & Criterio
End If

strSep = Nz(Separador, "")

Set rst = CurrentDb.OpenRecordset(strSql)

With rst
If (Not .EOF) And (Not .BOF) Then
Do While Not .EOF
strRes = strRes & .Fields(0)
.MoveNext

If Not .EOF Then
strRes = strRes & strSep
End If
Loop
End If

End With
End If
End If

ConcatenarCampo = strRes
End Function