Copiar valor de un subformulario a otro formulario

Tengo un problema con un subformulario en access. Ese subform tiene un ID autonumérico que quiero que al pulsar un botón me abra un segundo formulario ya creado y se copie el valor actual del ID en un campo de texto (que se llama igual que el ID del subform), de manera de que cada vez que haga click en el, me añada un nuevo registro con el mismo ID y queden relacionados El subformulario esta en vista de Hoja de datos y en la parte de relaciones, ambos están relacionados.

1 respuesta

Respuesta
1

Supongamos que el formulario Se llama Clientes, el subformulario se llama DetalleCliente y el formulario que quieres abrir desde el subformulario se llama Ventas, En cualquier evento del subformulario puedes poner

Docmd. Openform"ventas",,,,, acformadd, acdialog

Y en el cuadro de texto Id del formulario ventas puedes poner el evento, al recibir el enfoque

id.defaultvalue)¡=forms!clientes!detallecliente.form!id

Hola Icue. Gracias por tu respuesta. Concretamente los formularios se llaman "Datosclientes" donde dentro esta el subformulario "Gestion" y el formulario que quiero que me abra con el ID de gestión es "Factura". El problema es que el Subformulario me interesa que este en Hoja de datos y de esa forma no puedo poner un botón. ¿Seria posible que el botón este en el formulario "Datosclientes" o perdería el foco del ID al no tratarse del mismo formulario?

Dejo por sentado que no uso nunca la vista hoja de datos en los formulario, nunca he descubierto que ventaja tiene.

Por otro lado, te dije lo del botón por poner un ejemplo. Lo puedes colocar en cualquier evento.

Vamos a suponer que tienes un formulario DatosClientes como el de la imagen

En el evento Al hacer doble clic del cuadro de texto Id del subformulario

Le pongo lo de 

DoCmd.OpenForm "facturas", , , , acFormAdd, acDialog

Y en el formulario Facturas, en el evento Al activar el registro le pongo

If IsNull([Id]) Then
Id = Forms!datosclientes!gestion.Form!Id
End If

Entoncxes, en cuanto hago doble clic sobre el Id=2 del subformulario, hace

Si quieres, en la instrucción de abrir el formulario facturas puedes quitar lo de acdialog.

Otra forma es que pongas un botón en el formulario con la misma instrucción para abrir el formulario Facturas, pero antes de pulsarlo tienes que elegir el registro en el subformulario.

Perfecto. Ahora si funciona! Lo único es que cuando salgo del formulario facturas y vuelvo a hacer click en el mismo ID no me guarda los datos introducidos. En un primer momento pensé que era porque tenia puesto que guardara valores duplicados, pero al cambiar el indexado a valor único sigue igual, simplemente que no me deja guardarlo porque ya existe uno previo.

Vale, ya encontré la solución. Simplemente hice una consulta con todos los campos que tenia el formulario facturas y le dije que cogiera los datos de ahí, de modo que al pulsar sobre el ID ya si salen los datos guardados anteriormente en el formulario.

Muchas gracias por todo!

En la tabla Facturas el id lo puse como numérico. Las relaciones son las de la imagen

Si, así exactamente lo tengo yo, pero al final cante victoria demasiado pronto... Sigo sin poder editar la factura, ya que no me aparecen los datos:

Esta son mis relaciones:

Al poner en la tabla que no tenga datos duplicados, ya no añade 2 con el mismo numero, pero sigue sin mostrarme los precios que añadí anteriormente y demás datos.

Creo, que es mejor, que si quieres, repito si quieres, mándame una copia VACÍA a [email protected] y la miro. Si lo haces, en el asunto del mensaje pon tu alias Adrián Fernández ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas