Juntar registros en un solo campo.
Publicado por Dany (40 intervenciones) el 02/05/2016 23:59:52
Hola saludos cordiales a todos.
Tengo una tabla asi:
Codigo Sector
DNA 2501
NDT 2401
DNA 2502
TNT 2381
DNA 2336
NDT 2405
Quiero lograr juntar en otra tabla temporal o alguna consulta todos los Codigos con su Sector concantenados.
Algo así:
DNA 2501, 2502, 2336
NDT 2401, 2405
TNT 2381
Actualmente hago este proceso con un RecordSet y 3 consultas para concatenar los campos. en uno solo, agregando 7 u 8 columnas en la tabla final, pero si el registro no tiene Codigo no tiene tantos sectores al correr la consulta me pide los parametros para esas columnas.
Encontre este otro trozo de codigo pero no lo he podido hacer funcionar, me marca error "No value given for one or more required parameters"
Existira alguna forma mas corta y rapida de hacer lo que pretendo?
Saludos
DS
Tengo una tabla asi:
Codigo Sector
DNA 2501
NDT 2401
DNA 2502
TNT 2381
DNA 2336
NDT 2405
Quiero lograr juntar en otra tabla temporal o alguna consulta todos los Codigos con su Sector concantenados.
Algo así:
DNA 2501, 2502, 2336
NDT 2401, 2405
TNT 2381
Actualmente hago este proceso con un RecordSet y 3 consultas para concatenar los campos. en uno solo, agregando 7 u 8 columnas en la tabla final, pero si el registro no tiene Codigo no tiene tantos sectores al correr la consulta me pide los parametros para esas columnas.
Encontre este otro trozo de codigo pero no lo he podido hacer funcionar, me marca error "No value given for one or more required parameters"
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
Public Function Conc(Fieldx, Identity, Value, Source) As Variant
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
Dim vFld As Variant
Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
vFld = Null
SQL = "SELECT [" & Fieldx & "] as Fld" & _
" FROM [" & Source & "]" & _
" WHERE [" & Identity & "]=" & Value
' open recordset.
rs.Open SQL, cnn, adOpenForwardOnly, adLockReadOnly
' concatenate the field.
Do While Not rs.EOF
If Not IsNull(rs!Fld) Then
vFld = vFld & ", " & rs!Fld
End If
rs.MoveNext
Loop
' remove leading comma and space.
vFld = Mid(vFld, 2)
Set cnn = Nothing
Set rs = Nothing
' return concatenated string.
Conc = vFld
End Function
Existira alguna forma mas corta y rapida de hacer lo que pretendo?
Saludos
DS
Valora esta pregunta
0