Access - Recorrer y actualizar tabla. Concatenar campos

 
Vista:

Recorrer y actualizar tabla. Concatenar campos

Publicado por serena (2 intervenciones) el 18/11/2004 13:28:32
Hola, a ver si alguien me puede decir como hacer lo siguiente. Tengo que hacer una BD y cada vez me piden mas cosillas :(

Tengo una tabla con 4 campos "Nombre Telefono DNI TOTAL", lo que quiero hacer, mediante código, es recorrer la tabla desde el primer registro hasta el último concatenando "nombre telefono y DNI" y dejando en el campo total toso junto. Por ejemplo si tengo "Juan" "960111222" "29000000", el tercer campo ha de tener "Juan 960111222 29000000". La concatenación se hacerla, lo que no se hacer es recorrer la tabal y escribir en ese registro. A ver si alguien me puede ayudar.

Eso por ún lado, ahora una cosilla más dificil.... Quiero concatenar campos de registros distintos. Es decir, si tengo una tabla con Campo 1 (Nombre) y Campo 2(Numero)
"PEDRO" "v13"
"Juan" "R678"
"Antonio" "L02"

Quiero juntar en un campo los 3 "campos 2" de los 3 registros, para luego meter en otra tabla esto:

"Administracion" "v13 R678 L02"
"Recursos" "v13 R678 L02"
"Soporte" "v13 R678 L02"

Es dificil y no se me ocurre como hacerlo aver si alguien me ayuda.

Besos y 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
Imágen de perfil de Alejandro

Concatenar campos en registros y concatenar campos de registros distintos

Publicado por Alejandro (4142 intervenciones) el 17/05/2023 16:43:10
Para recorrer una tabla en Access y concatenar los campos en cada registro, puedes utilizar una estructura de bucle como el bucle "Do Until" o el bucle "For Each". Aquí tienes un ejemplo utilizando el bucle "Do Until":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub ConcatenarCampos()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim total As String
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("NombreTabla") ' Reemplaza "NombreTabla" con el nombre de tu tabla
 
    rs.MoveFirst ' Mover al primer registro
 
    Do Until rs.EOF ' Recorrer hasta el final de los registros
        total = rs!Nombre & " " & rs!Telefono & " " & rs!DNI ' Concatenar los campos
 
        rs.Edit ' Entrar en modo de edición del registro actual
        rs!Total = total ' Asignar la concatenación al campo Total
        rs.Update ' Guardar los cambios
 
        rs.MoveNext ' Mover al siguiente registro
    Loop
 
    rs.Close ' Cerrar el recordset
    Set rs = Nothing
    Set db = Nothing
End Sub

En cuanto a concatenar campos de registros distintos, puedes utilizar una consulta de selección y la función de agregado "GROUP BY" para agrupar los registros y luego concatenar los campos. Aquí tienes un ejemplo:

1
2
3
4
INSERT INTO NuevaTabla (Campo1, Campo2)
SELECT "Administracion", GROUP_CONCAT(Campo2)
FROM NombreTabla
GROUP BY Campo1

En este ejemplo, "NuevaTabla" es la tabla de destino donde quieres insertar los registros concatenados, "Campo1" es el campo que contendrá los valores "Administracion", "Campo2" es el campo que deseas concatenar y "NombreTabla" es la tabla de origen donde están los registros originales.

Recuerda adaptar los nombres de las tablas y campos según tu estructura de base de datos.

Espero que estas soluciones te sean útiles.
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