relacion formulario subformulario

Discute sobre las herramientas de la base de datos
Responder
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

relacion formulario subformulario

Mensaje por jjcastillo.7 »

Saludos, terminando el modulo de ingreso de datos me surge un problema, tengo un formulario y un subformulario, el subformulario contiene los países, 10 en este caso, el subformulario es autonumerico, va del 0 al 9, si coloco el país numero 11, el campo autonumerico se colocara en 10, bien, el campo clave del subformulario está relacionado con el formulario principal por una clave externa, esta no es autonumerica porque varios clientes pueden ser del mismo país, por lo que se repiten algunos países en el formulario principal, el problema está en que si agrego un país nuevo en el subformulario y este corresponde al número 11 en el campo clave, este 11 no se copia en el formulario principal, por lo que tengo que actualizar tanto en el subformulario como en el formulario principal, pensé que esto era automático, no soy experto en esto, pero si este no es el caso como se hace para solo actualizar información en el subformulario y que el campo clave externa del formulario principal se actualice automáticamente. Busque en el foro temas relacionados pero no encontré algo que tratara esto, y si lo estaba no lo entendí. Gracias. :crazy:
OPENOFFICE Apache OpenOffice 4.1.7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: relacion formulario subformulario

Mensaje por RMG »

Hola,

Con el dato introducido en el subformulario no se actualiza el del formulario, es al reves.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: relacion formulario subformulario

Mensaje por RMG »

Hola,

Lo he explicado mal, quiero decir que si no existe un dato en el formulario, el subformulario no se actualiza con este dato. Cuando un dato es nuevo primero en el formulario, depues en el subformulario.
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

Buenas!
Quizá no haya entendido bien, pero si es como yo creo haber entendido tienes un problema de concepto
El formulario principal filtra los resultados del subformulario según la clave que los relaciona.
Si lo que se busca no es eso, entonces son formularios independientes, y lo que se quiera hacer habría que ver la estructura de las tablas y lo que realmente se necesita.
Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

Gracias por responder,estoy haciendo controles de tabla para introducir los datos en las tabla, en la tabla de control del subformulario cuando después del ultimo registro introduzco un país nuevo, el campo clave autonumerico aumenta en 1, ok, por ejemplo al numero 11, pero este 11 no se registra en el campo clave externa que esta en el formulario principal, por lo que tengo que ir a la tabla de control del formulario principal y agregar en el campo clave externa el numero 11 en el registro nuevo en forma manual. En las relaciones de tablas esta colocado como actualización en cascada.Gracias.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

La cascada va hacia abajo, de formulario a subformulario, y no al revés.
Se supone que para un registro de un formulario puedes tener varios registros en el subformulario (La relación varios a varios es para las tablas, pero no para los formularios)
Puedes tener en el formulario la provincia de Cuenca, y en el subformulario vas rellenando los pueblos de Cuenca, y podrás tener un campo autonumérico para cada pueblo que añadas.
Si quieres pasar a los pueblos de Guadalajara tendrás que ir al formulario, añadir Guadalajara y después ir rellenado el subformulario, pero no puedes esperar (creo yo) meter Guadalajara en el subformulario y que lo entienda el programa como un nuevo registro del formulario principal (salvo con macros y un tanto enrevesadas, y para eso ya no sería necesario tener más de un formulario, ya que todos los datos se podrían incluir en uno solo).
Quizá no entendí bien el problema, pero si es como lo entendí hay que rehacer la arquitectura.
Otro saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

Gracias por responder, coloque un ejemplo, en este lo que quiero es llenar el formulario con un registro nuevo, pero en el campo id corresponsal existen varios de estos que se repiten, y esta relacionado con el subformulario corresponsal, ahora bien no se si estoy equivocado pero cuando quiero llenar un nuevo registro debería llenar el campo corresponsal del subformulario y este debería colocar el numero del campo id en el campo id del formulario principal, la relación entre la tabla principal y el subformulario es de uno a muchos.Gracias.
Adjuntos
Practica.zip
(13.57 KiB) Descargado 160 veces
OPENOFFICE Apache OpenOffice 4.1.7
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

Ok, entendí que tenia un problema de concepto, pero reformulo la pregunta, si el subformulario tiene 20 paises, y este subformulario tiene un campo clave autonumerico, y este campo autonumerico esta relacionado con un campo clave externa del formulario principal, según el numero que se coloque en el campo clave principal este lo relacionara con el país correspondiente en el subformulario, el asunto es que tendría que colocar un numero manualmente en el campo clave externa del formulario principal, porque este no es autonumerico porque hay países que se repiten, existe alguna forma de seleccionar el país en un control y que se coloque automaticamente el numero correspondiente a ese país en el campo clave externa del formulario principal. Gracias.
OPENOFFICE Apache OpenOffice 4.1.7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: relacion formulario subformulario

Mensaje por RMG »

NO.

Te lo hemos explicado, lo que pretendes no se puede hacer. Primero hay que crear el registro en la tabla donde es único, no donde es varios.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

El campo es único en el subformulario, y es muchos en el formulario principal.Se supone que el campo único no se va actualizar todo el tiempo, va a ser prácticamente fijo, pero en el campo del formulario principal a medida que aumenten los registros estos van a pertenecer a diversos países y por medio del campo clave externa que por esto no puede ser autonumerico se va a relacionar con el subformulario, Si no encuentro solución introduciré los registros nuevos directamente en las tablas,(muy engorroso).Gracias a todos los que contestaron y discúlpenme por entender todo esto al revés.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

El asunto es que debo ser duro de mollera, pero insisto que el esquema debe ser al revés.
En el formulario principal único y en el subformulario muchos.
Es como un árbol : primero un tronco y después unas ramas.
Si no lo estoy entendiendo bien lo siento, pero ya digo : soy duro de mollera

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: relacion formulario subformulario

Mensaje por RMG »

Hola,

Tal cual tienes estructurada la BD con solo 2 tablas, a un id producto solo le puedes asignar un corresponsal, para poder asignar un mismo id producto a varios corresponsales debes crear una tabla intermedia de varios a varios. Mira el ejemplo.

Saludos
Adjuntos
Practica.zip
(19.17 KiB) Descargado 150 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

la tabla subformulario tiene 15 corresponsales y no van a aumentar, lo que pasa es que en la tabla principal que es formulario a medida que crecen los registros, pueden haber registros que coincidan en el mismo corresponsal, por ejemplo pueden ingresar de pronto 5 registros que tengan el mismo corresponsal, lo que hara que en la columna id_corresponsal del formulario principal se repita 5 veces el numero correspondiente al corresponsal, si entran 5 registros con el corresponsal "LG" en la columna id_corresponsal del formulario principal se repetira el numero 14 cinco veces.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

Insisto
La relación muchos a muchos es en las tablas, pero en mi cabeza solo veo para los formularios una relación de uno a varios, de tal manera que el formulario principal tiene o puede tener varios registros en el subformulario, pero al revés no lo puedo imaginar.
Quizá soy muy torpe... (por favor dejad de confirmarlo con esas sonrisas), pero parece que quieres que el formulario principal sea el secundario, de tal manera que al variar el secundario varíe el principal.. .......
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

La relación no es muchos a muchos, en ninguna parte de las relaciones de estas tablas hay relación muchos a muchos, en la tabla principal hay muchos registros que pueden relacionarse con un registro del subformulario, para ponerlo de otra forma como harían entonces para agregar registros nuevos en la tabla principal usando solo controles de tablas.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

Y no será que lo que quieres es escoger los corresponsales que ya hay para cada producto?

En el formulario 'Corresponsales2' he puesto un cuadro de lista en el que te permite elegir los corresponsales que tienes guardados en la tabla de corresponsales, pero no te permite añadir ninguno que no tengas en la tabla.

Y no será que lo que quieres es escoger los corresponsales que ya hay para cada producto y en su caso añadir uno nuevo?

He puesto una tabla nueva de cada (productos1 y corresponsales1), que serán las tablas en las que se basa el formulario 'Corresponsales3', donde tiene un cuadro combinado, que se diferencia del cuadro de lista en que sí que permite añadir cosas nuevas. Para este cuadro combinado añadí una pequeña macro que chequea si un corresponsal que has puesto ya está en la tabla de corresponsales1, y si no es el caso, lo incorpora.
Lo que tendría que hacerse es que controle indiferentemente si es mayúscula o minúscula, porque si no puedes multiplicar los corresponsales sin querer (cosa que también pasaría con la presencia de espacios en blanco o acentos).

A ver si esta vez se asemeja a lo que necesitas, pero como ves, el tema de la arquitectura cambia totalmente, incluso entre corresponsales1 y productos1 no hay relación de ningún tipo.

Un saludo! ;)
Adjuntos
Practica.zip
(27.89 KiB) Descargado 154 veces
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

Lo que quiero es simplemente ingresar registros nuevos a la tabla principal, no al subformulario, como están las tablas ahora tengo que colocar en la columna id_corresponsal de la tabla principal manualmente el numero que corresponde al corresponsal del nuevo ingreso, el echo de que allá sacado el campo corresponsal de la tabla principal hacia un subformulario, fue por la primera forma normal que no me permite repetir campos en una columna,a lo mejor no debí haber normalizado la tabla no soy experto en esto. No se si existe una macro donde coloque en un cuadro de texto el nombre del corresponsal y esta coloque el numero correspondiente de ese corresponsal en la tabla principal en la fila correspondiente al nuevo registro.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

Pero....
Miraste si te sirve el formulario 3?
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

ok, se parece a lo que quiero, tendré que hacer modificaciones a mis tablas y relaciones, estudiare la macro.Gracias.
OPENOFFICE Apache OpenOffice 4.1.7
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

La idea es buena pero es como si eliminara el subformulario, tendría que cambiar toda la base de datos, lo que se me ocurre es lo siguiente, con una macro en la columna id_corresponsal, al cargar el evento,cuando seleccione el ultimo registro, se abra una lista de todos los corresponsales, después de que seleccione un corresponsal, al perder el foco, aparezca el numero correspondiente al corresponsal que se selecciono.
OPENOFFICE Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: relacion formulario subformulario

Mensaje por Longi »

Como veas, pero la idea de simplicidad elimina el subformulario, que además de ser subformulario lo querías manejar como principal.... Sigo sin discernir el objetivo.
De todos modos puedes añadir una nueva columna para el id de corresponsal, y así, cuando el corresponsal lo hayas escogido, entonces te aparecerá el índice. Todo esto supongo que es porque necesitas dicho índice.
Si quieres un subformulario le pones un campo (índice de corresponsal) y lo vincula con el principal, pero no intentes modificar ese subformulario para que se refleje en el principal.
Otro saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
jjcastillo.7
Mensajes: 39
Registrado: Vie Sep 18, 2020 2:05 am

Re: relacion formulario subformulario

Mensaje por jjcastillo.7 »

Lo que pasa es que ya termine el modulo de consulta y me funciona bien , si elimino los subformularios tendría que empezar otra vez con el modulo de consulta, y lo de los subformularios fue producto de que normalice las tablas, no se si en LO no es necesario normalizar no soy experto pero pensé que esto se hacia con cualquier base de datos, y la 1FN dice a secas si un registro de un campo se repite tienes que sacarlo a otra tabla.
OPENOFFICE Apache OpenOffice 4.1.7
Responder