Vincular 2 formularios a través de un campo de union

Tengo dos tablas: Tabla A(Idnombre, nombre, telf) y una tabla B(Idcargo, importe, fecha, Idnombre)

Las dos tablas están relacionadas por el campo Idnombre.

Tengo 2 formularios continuos: Formulario A con datos Tabla A y Formulario B con datos tabla B.

Me gustaría que en la misma ventana pudiera ver los dos formularios (uno al lado del otro). Que en el formulario A viera todos los registros de Id nombre y en el formulario B viera solo los registros que son iguales al registro activo de Idnombre del formulario A. Cuando haga click en otro Idnombre del formulario A, aparezcan en el formulario B todos sus registros relacionados.

Se hacerlo, si convierto el formulario B en subformulario de A, pero entonces me pone uno arriba y otro abajo y yo quiero, por comodidad, que estén al lado y también se hacerlo con un comando que abra el formulario B al hacer click. Pero me gustaría poder tener los dos abiertos a la vez, si no es muy complicado.

Que quedara como esta imagen:

1 respuesta

Respuesta
2

Puedes hacerlo perfectamente

Pero recuerda que para "mandar" desde un subformulario sobre otro subformulario, pasa como con las líneas de parentesco te tienes que remontar en el árbol hasta encontrar el antepasado común.

En tu caso, para darle origen al subformulario Productos desde el subformulario Clientes sería

forms!formulario1!productos.form.recordsource="select * from productos where Idnombre=" & me.idnombre & ""

¡Gracias Julián ! 

 Una duda: Esta orden donde la tengo que poner ?

Vamos a ver si me explico. Supongamos que los subformularios son Clientes y Ventas. Ambos tienen un campo común Idcliente. Y tu quieres que al hacer clic en algún sitio, o en el evento al activar registro, o lo que sea del subformulario Clientes, en el otro subformulario Ventas, te muestre las ídem que le has hecho a ese cliente. Como te decía, yo lo pondría en el evento Al activar el registro del subformulario Clientes, pero no puedo ser categórico. Lo tienes que poner donde quieras

forms!formulario1!ventas.form.rowsource="select * from Ventas where idcliente=" & me.idcliente & ""

Es decir, cuando "seleccione" un registro en el subformulario Clientes, el origen de registros del otro subformulario Ventas sean aquellos registros de la tabla Ventas en que los IdCliente coincidan.

¡Gracias! 

Hola Julián, no he tenido narices de conseguir que me funcione, igual pongo algun corchete o comillas mal y como no controlo mucho el código no he podido hacerlo funcionar.

lo que he hecho es: poner en la hoja de propiedades, al activar registro, una macro que me abra el segundo subformulario y con la condición que Idcliente = Idcliente. Entonces quedan los dos formularios abiertos y cuando cambio de registro, actualiza el otro.

Muchas gracias

Me alegro que lo hayas resuelto. Te garantizo, con un certeza del 100% que si sigues en esto te pasarás al código VB. De todas las formas, aunque no lo hayas visto, ya lo has hecho. Una macro no deja de ser un trozo de código al que le han puesto un nombre en "cristiano". Te propongo que en un formulario en un botón, en el evento al hacer clic, pongas esa macro y luego pulsa

En el Office 16 me parece que pone Convertir macros del formulario a VB

Luego vete a las propiedades del botón y verás que, en el evento al hacer clic, ya te pone procedimiento de evento. Haz clic en el y luego haz clic en el botón de tres puntos(...) que aparece a la derecha. Se abrirá la ventana del editor de VB y verás como pone lo mismo que te decía.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas