Principales respuestas
Transformar filas en columnas

Pregunta
-
Hola, tengo un problema al juntar una serie de columnas en un única columna. Los datos que tengo son estos por ejemplo:
1 2 3
4 5 6
7 8 9
y quiero que me queden en una única columna tal que así,
1
2
3
4
5
6
7
8
9
Si me podéis echar un cable se agradece ;)
Un saludo
Respuestas
-
Hola de nuevo
¿Se supone que tienes tres datos por cada fila? en el caso de excel, tres celdas por fila, en el caso de Access, tres campos por registro. ¿Correcto?
¿Y donde quieres generar la salida? puedes crearte una tabla de destino con un único campo, y abrir un recordset con los datos de origen
Public Sub Fila() Dim db As DAO.Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset Set db = CurrentDb Set rs1 = db.OpenRecordset("tblOrigen", dbOpenForwardOnly) Set rs2 = db.OpenRecordset("tblDestino", dbOpenDynaset) Do Until rs1.EOF rs2.AddNew rs2.Fields("D") = rs1.Fields("A") rs2.Update rs2.AddNew rs2.Fields("D") = rs1.Fields("B") rs2.Update rs2.AddNew rs2.Fields("D") = rs1.Fields("C") rs2.Update 'Paso al siguiente registro rs1.MoveNext Loop rs1.Close Set rs1 = Nothing rs2.Close Set rs2 = Nothing db.Close Set db = Nothing End Sub
Espero te sirva
Salu2,
José Mª Fueyo [MS MVP Access]
Todas las respuestas
-
-
-
Hola de nuevo
¿Se supone que tienes tres datos por cada fila? en el caso de excel, tres celdas por fila, en el caso de Access, tres campos por registro. ¿Correcto?
¿Y donde quieres generar la salida? puedes crearte una tabla de destino con un único campo, y abrir un recordset con los datos de origen
Public Sub Fila() Dim db As DAO.Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset Set db = CurrentDb Set rs1 = db.OpenRecordset("tblOrigen", dbOpenForwardOnly) Set rs2 = db.OpenRecordset("tblDestino", dbOpenDynaset) Do Until rs1.EOF rs2.AddNew rs2.Fields("D") = rs1.Fields("A") rs2.Update rs2.AddNew rs2.Fields("D") = rs1.Fields("B") rs2.Update rs2.AddNew rs2.Fields("D") = rs1.Fields("C") rs2.Update 'Paso al siguiente registro rs1.MoveNext Loop rs1.Close Set rs1 = Nothing rs2.Close Set rs2 = Nothing db.Close Set db = Nothing End Sub
Espero te sirva
Salu2,
José Mª Fueyo [MS MVP Access] -
-
Hace bastante tiempo de esto, pero igual quiero agradecer a José Mª Fueyo su disposición y esfuerzo por ayudar. Creía que no podría resolver mi problema de convertir 227 filas-registros de 6 campos en una sola columna; pues con esta línea (dentro del evento click de un botón en un formulario, y sustituyendo "Public Sub Fila()" por "Private Sub Comando2_Click()") pude hacerlo de un sólo golpe (o debo decir, un sólo click).
Muchísimas gracias, amigo! -
A ti.
Es un placer leer cosas como estas tras casi seis años haberlas escrito. :-)
Salu2,
José Mª Fueyo
- Editado José Mª Fueyo lunes, 17 de abril de 2017 10:04