Dividir registros de una tabla a otra access

Tengo un form (Compras - Detalles) donde ingreso articulos. Quisiera que al pulsar un botón me insertara en la tabla (T - Inventario) la misma cantidad de articulos pero divididos por unidades agrupados por un IdDetCompra.

Por ejemplo, yo ingreso 4ud y al pulsar el botón me crea 4 registros en la otra tabla con el mismo IdDetCompra y IdProducto, si ingreso 1ud = inserta 1 registro, 20ud = inserta 20 registros,...

Gracias por vuestra ayuda

1 respuesta

Respuesta
3

Con este código en el botón de tu formulario hace lo que quieres para el registro activo:

Dim i As Integer
For i=1 to Me.Cantidad
   CurrentDb.Execute "INSERT INTO [T - Inventario] (Ctd,IdSetCompra,IdProducto) VALUES(1," & Me.Id & "," & Me.Producto & ")"
Next i

Lo que no te añade es el campo Estado.

¡Gracias! Funciona a la perfección

Hola Sveinbjorn El Rojo, ¿habría alguna forma de aplicar el código en vez de uno en uno, todos los registros a lavez? He intentado mediante consulta pero no consio adivinar el código.

Gracias!

A ver esto:

Dim i As Integer
Dim rst As DAO.Recordset
Set rst=CurrentDb.OpenRecordset("SELECT * FROM [Compras - Detalles] WHERE Id NOT IN (SELECT IdDetCompra FROM [T - Inventario])")
If rst.RecordCount=0 Then GoTo Salida
rst.MoveFirst
Do Until rst.EOF
   For i=1 to rst("Cantidad")
      CurrentDb.Execute "INSERT INTO [T - Inventario] (Ctd,IdSetCompra,IdProducto) VALUES(1," & rst("Id") & "," & rst("Producto") & ")"
   Next i
   rst.MoveNext
Loop
Salida:
Rst. Close
Set rst=Nothing

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas