Copiar registros de un form a otro

Tengo un form (Orden) con 2 subformularios relacionados (Mano de obra) y (Recambios) y quisiera que al darle a un botón me copie los registros de los subforms (Mano de obra) y (Recambios) en otro form (Albarán) con 2 subforms con la misma estructura del form (Orden), creando un nuevo albarán al finalizar la orden.

Los 2 formularios (Orden) y (Albarán) son exactamente iguales. Tienen esta estructura

Gracias

1 respuesta

Respuesta
3

En principio no es difícil. Me ha parecido entender que quieres que te pase los datos del formulario Orden al formulario Albarán y los datos del subformulario Mano de obra al subformulario ¿Mano de obra? Del formulario Orden. Supongamos que el formulario Orden depende de la tabla Orden y el subformulario Mano de Obra depende de la tabla del mismo nombre y supongamos que formulario y subformulario están relacionados por Idorden. Y por último supongamos que el subformulario Mano de obra del formulario Albaran depende de la tabla Otra. En el evento Al hacer clic del botón puedes poner

docmd.setwarnings false

docmd.runsql"insert into Albaran select * from Orden where Idorden=" & me.idorden & ""

docmd.runsql"insert into Otra select * from [mano de obra] where idorden=" & me.idorden & ""

Esto último sería igual para Recambios.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo, que quizás se vea mejor. Si lo haces, en el asunto del mensaje pon tu alias A. sanc, ya que si no sé quien me escribe ni los abro.

Gracias Icue, lo que quiero es que al darle al botón cree un nuevo albarán copiando el idOrden del form orden al idOrden de Albarán y copie los mismo datos de los subform de Orden a los subform de Albarán

Supongamos que tengo una tabla Clientes relacionada con otra tabla Ventas por Idcliente. Asimismo tengo otra tabla Compradores y otra tabla Compras. Si con las primeras hago un formulario con subformulario

Y pulso el botón

y en la tabla Compras

Como dices que los campos se llaman igual, el código es simple

Si tengo una tabla Clientes y una tabla Ventas relacionadas por el campo Idcliente y las tablas Compradores y Compras( que por lo que decías los campos se llaman igual). Con las dos primeras hago un formulario con subformulario

Y pulso el botón

Y los datos del subformulario Ventas pasan a Compras

El código del botón es

El problema es que el subform manoobra del form albarán tengo que insertar el idalbaran de la tabla albaranes ademas de copiar todos los datos del subform ordenes manoobra.

En resumen, los subform son completamente iguales pero los de albarán necesitan llevar un idalbarán que se lo doy al crear un registro nuevo al aplicar el insert intro

Si en la tabla Albaranes no vas a insertar el idobra(aunque puedes hacerlo exactamente igual y además sería conveniente para saber a que obra corresponde ese albarán) tendrías que usar

Docmd. Runsql"insert into albaranes(nombrecliente, direccion, telefono, etc) values(nombrecliente, direccion, telefono, etc)"

Hola, el problema viene en la tabla albarán.manodeobra, porque no sé el procedimiento para que me copie todos los registros de la tabla orden.manoobra con el mismo NumOrden que he copiado en la tabla albarán

  DoCmd.RunSQL "insert into [Albaranes] (IdVehículo, NumOrden) select [Órdenes].IdVehículo, NumOrden FROM [Órdenes] where NumOrden='" & Me.NumOrden & "'"
  DoCmd.RunSQL "insert into [Albaranes - Mano de obra] (IdVehículo, NumOrden, IdAlbarán) select [Albaranes].IdVehículo, NumOrden, IdAlbarán FROM [Albaranes] where NumOrden='" & Me.NumOrden & "'"

Hasta aquí me funciona perfecto, pero no consigo añadir al insert into el código para que me copie los campos cantidad,descripción,... de la tabla orden.manodeobra a la tabla albaran.manodeobra

Perdona las molestias

Como sigo sin saber la construcción de las tablas, si tengo una tabla Ordenes

Que está relacionada con ManoObra

Por otro lado tengo la tabla Albaranes

Y su tabla relacionada Manoobra2

Con las dos primeras había hecho un formulario con subformulario

Si pulso el botón y abro el formulario Albaranes

El código del botón es

Aunque como decía, el campo IdAlbaran de la tabla Albaranes lo veo innecesario, ya que UN albarán es consecuencia de UNA Orden

Hola icue, la estructura es como la que has puesto tu, pero he puesto el código y solo me copia una línea entera de registro y yo quiero que me copie todos los registros referente a la orden activa

No sé como lo habrás puesto, porque en la imagen puedes ver como pasa todos los registros de ManoObra A ManoObra2, y el código que puse funciona perfectamente.

Te dejo una foto de la estructura

Lo que quiero es que al pulsar el boton el el form Orden me cree un IdAlbarán nuevo en la tabla Albaranes copiando el NumOrden y IdVehículo en la tabla Albaranes

A la vez insertar el IdAlbarán creado en la tabla Albaranes-Manodeobra y copiar los datos de la tabla T-OTMO

A la vez insertar el IdAlbarán de la tabla Albaranes y el IdDetalle de Albaranes-Manodeobra en la tabla Albaranes-Recambios y copiar los datos de la tabla T-OTRecambios

Perdona el follón, pero lo quiero así para poder crear un albarán sin hacer orden

Por partes. Te sobran un montón de campos. Si el campo NumOrden de la tabla Ordenes va a ser único, ¿para qué quieres el campo IdOrden? Si un albarán corresponde a una Orden, ¿para qué quieres un Idalbaran? ¿Si en la tabla Ordenes tienes un Idvehiculo, ¿Para qué quieres poner otra vez Idvehiculo en la tabla T-OT Mano? Y así hasta ...

Dicho esto, si tengo un formulario

Y pulso el botón, y abro el formulario Albaranes

El código del botón es

Gracias Icue, funciona perfecto. ¿Habría algún procedimiento para inpedirme copiar los datos si ya está el registro copiado?

Creo que ya se puede cerrar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas