Problemas para concatenar en consultas
Publicado por Juan (2 intervenciones) el 08/11/2014 16:36:09
Hola,
Es mi primera vez en el foro y quisiera su opinion o comentarios.
Mi problema es que tengo tablas relacionadas 1 a varios y por medio de una consulta prentedo concatenar un campo. Para lo anterior use la siguiente funcion que obtuve de la web.
Hasta ahi iba bien, pero al ejecutar la funcion en una consulta con la siguiente instruccion ConcatenarCampo("Titular","Tabla","Vigente and IdUnico = " & [Clave],", ") donde Vigente es una valor Si/No.
como resultado obtengo los campos concatenados pero se me repiten los resultados.
Alguien sabe que estoy pasando por alto.
Gracias.
Es mi primera vez en el foro y quisiera su opinion o comentarios.
Mi problema es que tengo tablas relacionadas 1 a varios y por medio de una consulta prentedo concatenar un campo. Para lo anterior use la siguiente funcion que obtuve de la web.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
rst.Close
End If
End With
End If
End If
ConcatenarCampo = strRes
End Function
Hasta ahi iba bien, pero al ejecutar la funcion en una consulta con la siguiente instruccion ConcatenarCampo("Titular","Tabla","Vigente and IdUnico = " & [Clave],", ") donde Vigente es una valor Si/No.
como resultado obtengo los campos concatenados pero se me repiten los resultados.
Alguien sabe que estoy pasando por alto.
Gracias.
Valora esta pregunta


0