Vincular datos entre dos formularios

Estimado experto
Tengo un pequeño problema con la vinculación de datos entre dos formularios.
Tengo dos formularios: Uno se llama Component y el otro Oil.
El formulario Component tiene varios campos: Asset, make, serial, model, equipment type, location. El campo asset es un cuadro combinado el cual manda a llamar los datos make, serial, model, equipment type y location. 
Selecciono o tecleo el dato en el campo combinado asset y los datos aparecen automáticamente dentro de los cuadros de texto correspondientes del formulario Component.
El formulario Oil tiene de igual forma otros cuadros de texto: Oil Brand, Oil Type, Oil weight, sump capacity.
Ambas tablas de ambos formularios tienen un campo en común: Id
Lo que pretendo hacer es lo siguiente:
1.- Seleccionar un dato de la lista del cuadro combinado Asset
2.- Esto me genera los datos make, serial, model ( Este paso ya esta logrado)
3.- Poner un botón en el formulario Component que mande a llamar al formulario OIL ( ya esta hecho)
4.- Que el formulario oil muestre los datos: Oil Brand, Oil tpye, etc de forma automática ( he aquí el problema)
Cuando mando a llamar el formulario Oil, este se abre sin problemas, pero no se generan los datos. Las casillas aparecen en blanco.
En resumen: Puedo ver los datos del formulario Component de forma automática, puedo abrir el formulario oil por medio de un botón pero no muestra los datos correspondientes para el registro seleccionado.
En el botón puse el siguiente código al dar un clic:
relacion_id=[form_COMPONENT].Id
Docmd.OpenForm "Oil", acNormal, ,"[Id]='" & relacion_id & "'", acformReadOnly
Pero lo único que me hace es abrir el formulario con las celdas vacías.
Cabe mencionar que me gustaría hacerlo con formularios diferentes y no con subformulario, ya que este ultimo cargaría de manera visual mi formulario principal
De antemano le agradezco su tiempo ( [email protected])

1 Respuesta

Respuesta
1
Para pasar una variable de un formulario a otro:
    Me. Refresh
    variable = Forms!NombreFormulario!NombreCuadroCombinado
DoCmd. OpenForm...
Hola Angeles
Quiero pensar que ese código va en el botón al hacer click. Solo para aclarar:
Me.Refresh
    variable = Forms!NombreFormulario!NombreCuadroCombinado
DoCmd.OpenForm...
¿Variable seria igual a Oil Type, Oil Brand, etc?
¿Nombre del Formulario seri igual a Component o Oil?
DoCmd.OpenForm "Oil" ///// Esta linea de codigo quedaria terminada como la puse??
Muchas gracias por tu atención..
Efectivamente el código va en el botón con el que abres el otro formulario, el nombre variable lo he puesto como puedo poner pepe, es donde queda almacenado el valor del cuadro combinado que has elegido.
Después abrirías el otro formulario normalmente:
DoCmd. OpenForm "NombredelOtroFormulario", acNormal
Gracias por tus respuestas ángeles
He puesto lo que me dices en el botón y cuando abro el formulario no se me generan los datos.
Te explico:
El cuadro combinado se llama Asset, este contiene una lista y al seleccionar un dato de esa lista se generan datos en campos de texto ( Marca de la Unidad, Modelo, Ubicación) de forma automática en el formulario principal llamado COMPONENT.
A este formulario COMPONENT le he agregado un botón. Este botón debería abrir el formulario secundario llamado Oil y al momento que se abra el formulario deberían aparecer de forma automática los datos en campos de texto ( Marca de aceite, Peso del Aceite, Tipo de aceite).
El formulario abre sin problemas, pero los datos no aparecen en los cuadros de texto.
Probé con el código que me diste pero sigue abriendo el formulario pero con los cuadros de texto en blanco.
Gracias ángeles y disculpa las molestias que te causo
Perdona pero se me olvidó que la variable tiene que ser declarada como pública.
Abres un módulo nuevo y pones:
Option Compare Database
Option Explicit
Public NombreVariable
De esta forma la variable NombreVariable estará disponible en todos los formularios, informes ... etc de la Base de Datos.
Hola ángeles
Sigue sin generarme los datos, pero todo lo que me has comentado me ha dado gran idea por donde puedo trabajar..
Gracias
Angeles acabo de lograr lo que quería. Nada más es afinar detalles..
Te agradezco de antemano tu tiempo y conocimientos que aquí proporcionas.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas