Access copiar registro de un formulario a otro

Tengo un formulario [FORMULARIO1] con [Campo1], [campo2], [campo3].
Tengo otro formulario [FORMULARIO2] con los mismos campos.
Necesito que al pulsar un botón en el [FORMULARIO1] copie el registro actual en un nuevo registro del [FORMULARIO2]
¿Cómo puedo hacerlo?

3 Respuestas

Respuesta

Buscando solución a mi problema, me encontré con este foro y justo con esta pregunta, le expongo la mi problema, tengo 5 informes los cuales muestran de forma general lo siguiente, necesito crear un nuevo informe donde pueda mostrar los totales de todos los demás infromes, lo que he hecho es en detalle crear un campo y en origen de control buscar el nombre del campo que necesito pero me da "#Error", me podrían ayudar

Respuesta
1
amig@:
Depende de lo que quieras hacer, porque una solución es vincular en el "Control Source" de ambos formularios al mismo campo en la base de datos. Así que lo que escribas o selecciones en el formulario uno se copiara en el 2do y viceversa.
Dame más detalles para conocer por cual vía es más factible.
No, de lo que se trata es que el primer formulario muestra los datos almacenados en una tabla y el segundo formulario de otra tabla distinta cuyos primeros campos coinciden. Pondré un ejemplo para explicarme mejor:
Supongamos que en la 1ª tabla tengo los campos:
ALBARAN - REF - DESCRIPCION - UNIDADES
Y en la 2ª tabla voy a gestionar los lotes. Así pues tengo
ALBARAN - REF - DESCRIPCION - UNIDADES - LOTE
Ahora con datos:
Tabla 1
1 - 0001 - ARTICULO 1 - 100
Tabla 2
1 - 001 - ARTICULO 1 - 50 - LOTE1
1 - 002 - ARTICULO 1 - 20 - LOTE2
1 - 002 - ARTICULO 2 - 30 - LOTE3
Entonces necesito, como decía en mi pregunta inicial con un botón de comando copiar los datos de los campos coincidentes del registro actual del formulario 1 al formulario 2 y en el formulario 2 completando a mano las cantidades de cada lote.
Ok, te explico;
En el evento "On Open" del Formulario 2 vas a colocar:
*.Value = [Forms]![**]![***]
donde:
*: es el nombre del campo del formulario 2 donde quieres que aparezca la informacion que ya habias puesto en el formulario 1
**: Nombre del Formulario 1
***: Nombre del campo en el formulario 1; Donde escribiste la informacion.
Ahora debes crear un botón que lo haces en vista diseño y le asignas en el evento "On Click" que abra el Formulario 2.
OJO: deberás repetir esa linea tantas veces como información necesites que se copie al otro formulario uno por cada campo.
Y listo
No es eso lo que pretendía, pero ya lo tengo resuelto, pongo el código por si a alguien le es útil. A ti darte las gracias de todas formas por tu esfurezo.
Dentro de un formulario hay 2 subformularios. Al darle doble clic en un control del primer subformulario debe copiar algunos campos del registro activo al 2º subformulario. Este es el código:
Pensé que se trataba de dos form abiertos a la vez, estando dentro de un form principal hay que hacerlo de otra forma
With DoCmd
 .SelectObject acForm, "principal"
 .GoToControl "secundario"
 .GoToRecord , , acNewRec
End With
Parent.Secundario.Form.Campo1 = Me.Campo1
Parent.Secundario.Form.Campo2 = Me.Campo2
Gracias
Que bien que pudiste solucionar, recuerda finalizar la pregunta.
Respuesta
1
Al pulsar el botón puedes utilizar:
Docmd. OpenForm "Formulario2"
Forms!Formulario1.Campo1=Me.campo1
Forms!Formulario2.Campo1=Me.campo2
Forms!Formulario3.Campo1=Me.campo3
Y asi sucesivamentes
No es eso lo que pretendía, pero ya lo tengo resuelto, pongo el código por si a alguien le es útil. A ti darte las gracias de todas formas por tu esfurezo.
Dentro de un formulario hay 2 subformularios. Al darle doble clic en un control del primer subformulario debe copiar algunos campos del registro activo al 2º subformulario. Este es el código:
With DoCmd
 .SelectObject acForm, "principal"
 .GoToControl "secundario"
 .GoToRecord , , acNewRec
End With
Parent.Secundario.Form.Campo1 = Me.Campo1
Parent.Secundario.Form.Campo2 = Me.Campo2
Gracias
Me alegro que lo hayas solucionado.
Entonces

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas