Access. Necesito poner en una fila varios registros.

Si tengo una tabla donde hay varias filas con el mismo numero y varios registros y quiero poner en una fila todos los registros del mismo numero, como lo puedo hacer. La tabla contiene millones de registros. Adjunto ejemplo.

Tabla de inicio

tabla final

1 Respuesta

Respuesta
1

Vamos a ver si consigo explícame.

Supongamos que la tabla de arriba se llama Otra y tiene un Autonumerico llamado Idlo, y la de abajo CopiaOtra. En la tabla CopiaOtra, coloca los campos Idlo, numero, fecha1, valor1, fecha2, valor2, fecha3, valor3

Con la tabla Otra crea un formulario tabular. En el encabezado o en el pie del formulario pon un botón de comando y en sus propiedades-eventos-Al hacer clic, crea un procedimiento de evento y entre Private Sub y End Sub escribe

Form.RecordSource = "select * from otra order by valor1 desc"
DoCmd.SetWarnings False
Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To Form.Recordset.RecordCount
If Not IsNull([Valor1]) Then
DoCmd. RunSQL "insert into copiaotra(numero, fecha1, valor1)values(forms!otra!numero, forms!otra!fecha, forms!otra!valor1)"
End If
If Not IsNull([Valor2]) Then
DoCmd.RunSQL "update copiaotra set numero=forms!otra!numero,fecha2=forms!otra!fecha,valor2=forms!otra!valor2 where numero=forms!otra!numero"
End If
If Not IsNull([Valor3]) Then
DoCmd.RunSQL "update copiaotra set numero=forms!otra!numero,fecha3=forms!otra!fecha,valor3=forms!otra!valor3 where numero=forms!otra!numero"
End If

DoCmd.GoToRecord , , acNext
Next
DoCmd. GoToRecord,, acFirst

Te explico, primero le digo que ordene los registros en forma descendente del valor1 para que los primeros registros del formulario sean aquellos en que valor1 tiene valor. Así, cuando por lo siguiente empiece a recorrer los registros de arriba a abajo, primero pondrá los valores que tengan valor1, luego va actualizando esos campos ya insertados.

Lo que no se es lo que tardará por eso de ... millones de registros...

De todas formas, si ves que te lías y quieres, mándame un mensaje a [email protected] y te mando un ejemplo con los mismos datos que has puesto. Si lo haces, en el asunto del mensaje pon tu Alias Monica Vicente, que si no lo pone no abro los mensajes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas