Access, insertar último item autonumérico de una tabla en otra

Amablemente solicito su ayuda con el siguiente caso.

Tengo un formulario con unos textbox referentes al pedido. Nombre, dirección de entrega, número de contacto, fecha entre otros.

En el mismo formulario, con doble click en un ítem de un listbox, envía los datos del producto a unos textbox, luego el usuario en otro textbox escribe la cantidad de producto que va a enviar.

Estos datos van a una tabla temporal tblproductostemp y se los va mostrando al usuario en el listbox lbxProductosPDM.

Una vez cargados los productos el usuario le da click al botonGuardaPedido donde:

1-. Los datos generales del pedido nombre dirección etc.. Se guardan en la tabla tblPedidos, el primer campo IdPedido es autonumérico y corresponde al número de pedido.

2-. Los datos de los productos se guardan en la tabla tblProdcutosPedido y lo que hace el código es copiar los datos de la tabla temporal tblproductostemp a tblProdcutosPedido. (Luego borra los datos de esta tabla)

Cómo puedo hacer para que cuando se grabe en tblProdcutosPedido el campo numeropedido quede con el autonumérico o número consecutivo del pedido de la tabla tblPedidos?

Y luego mostrar un mensaje “Ha generado el pedido número N”

Respuesta
2

Entre los pasos 1 y 2, usa la función DMax o Dlast para obtener el último IDPedido (que será también el más alto), lo guardas en una variable, y lo usas en el paso 2.

Por ejemplo algo así:

CurrentDb.Execute "INSERT INTO tblPedidos(Nombre, Direccion...) VALUES('" & Me.Nombre & "','" & Me.Direccion & "',.....)"
Dim ultPedido as Long
UltPedido=DMax("IdPedido","tblPedidos")
CurrentDb.Execute "INSERT INTO tblProdcuctosPedido(Pedido, Articulo, Cantidad,...) VALUES(" & UltPedido & "," & Me.Articulo & "'," & me. Cantidad & "...)"

Obviamente tendrás que adaptarlo a lo que ya tengas programado en tu botón, y a los nombres que manejes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas