Duplicar datos en lote en una tabla.

Tengo una tabla pedidos con la siguiente estructura

NPedido FecPedido Cliente Cantidad

1              01/01/2017       a                25

1              01/01/2017       a                25

1              01/01/2017       b               25

1              01/01/2017       b                25

1              01/01/2017       b               25

1              01/01/2017       c               25

1              01/01/2017       c              25, etc

la clave principal esta compuesta por NPedido+FecPedido+Cliente.

Se puedria generar automáticamente el pedido 2, en la misma tabla pedidos, con los mismos datos, solo debe cambiar el Npedido y la fecPedido, esos datos pueden ser ingresados en un formulario que ejecute este proceso. Y el resultado deberá quedar así.

NPedido FecPedido       Cliente   Cantidad 

1              01/01/2017       a                25

1              01/01/2017       a                25

1              01/01/2017       b              25

1              01/01/2017       b              25

1              01/01/2017       b              25

1              01/01/2017       c              25

1              01/01/2017       c             25

2              08/01/2017       a             25

2              08/01/2017       a             25

2              08/01/2017       b             25

2              08/01/2017       b             25

2              08/01/2017       b             25

2              08/01/2017       c             25

2              08/01/2017       c             25

1 Respuesta

Respuesta
2

Puedes hacerlo fácilmente y de varias, pero antes déjame decirte que no entiendo que npedido+fecha+cliente sea clave principal, porque como se puede ver en la imagen sale una clave repetida.

1º Supongamos que el un formulario, sea el que sea pones un botón de comando y en el evento Al hacer clic pones

docmd.setwarnings false

docmd.runsql"insert into pedidos select cliente, cantidad from pedidos

docmd.runsql"update pedidos set nPedido=2, fecpedido=#08/01/2018# where npedido is null"

2º Supongamos que estás en el formulario Pedidos. Puedes poner en el encabezado un botón y poner

docmd.setwarnings false

docmd.gotorecord,,acfirst

dim i as integer

for i=1 to form.recordset.recordcount

docmd.runsql"insert into pedidos(npedido,fecpedido,cliente,cantidad)values(2,#08/01/2018#,'" & me.cliente & "', " & me.cantidad & ")"

docmd.gotorecord,,acnext

next

Lo que hace es ir al primer registro e insertarte en la tabla Pedidos, en los campos que aparecen en el primer paréntesis los valores, 2, la fecha y los valores que aparecen en los cuadros de texto Cliente y Cantidad DE ESE registro. Se va al siguiente y lo mismo, y así hasta el final.

Se puede hacer también con consultas, aunque yo prefiera hacerlo en código.

De todas formas, como creo que tienes mi email, si quieres algún ejemplo, mándame un mensaje.

Tienes razón en el ejemplo me equivoque y repetí el cliente el cliente es a, b, c, f, g, etc, y te solicito me envíes tu email, para enviarte el ejemplo exacto a ver si esta bien, voy a desarrollar ahorita de acuerdo a tu explicación, gracias

Es [email protected]

En el asunto del mensaje pon tu alias Galo Alvear, ya que si no sé quien me escribe ni los abro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas