Access - Problemas para concatenar en consultas

   
Vista:

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.

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas para concatenar en consultas

Publicado por Martha (156 intervenciones) el 08/11/2014 19:24:34
Solo haces un Select a un campo.
Para evitar que se te duplique, lo único que se me ocurre es que uses la cláusula DISTINCT.
Algo tal que así:

strSql = "SELECT DISTINCT" & NombreCampo
strSql = strSql & " FROM " & NombreTabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas para concatenar en consultas

Publicado por Juan (2 intervenciones) el 08/11/2014 20:33:06
Tenias razón, eso me faltaba, no solo en el codigo, sino tambien en la consulta que llama la funcion.

Muy agradecido Martha.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar