Actualizar Subformulario en nuevo registro

Discute sobre las herramientas de la base de datos
Responder
xeski
Mensajes: 3
Registrado: Sab Nov 03, 2018 12:21 pm

Actualizar Subformulario en nuevo registro

Mensaje por xeski »

Hola,
En intentar rellenar una nueva dirección de un cliente en el formulario clients_envia2 me gustaria que en escoger en el desplegable un DNI que no esta en la tabla como el 111 me rellenara el nombre del cliente de la tabla clients factu (subformulario)
Solo cuando le doy a grabar el registro me sale el nombre del cliente.
He probado mil maneras y no lo consigo (ya veran que tengo adjuntas 20 macros), gracias por adelantado.

Les adjunto el archivo.
Saludos
Adjuntos
subformulario.rar
(20.88 KiB) Descargado 254 veces
Libreoffice 6.0.62 (x64)
Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Actualizar Subformulario en nuevo registro

Mensaje por RMG »

Hola,

Dices 20 macros, solo veo 4, y ninguna sirve para cargar los datos que pretendes. Mi opinión es que tienes mal estructurada la BD, solo puedes poner un cliente en envíos pues has hecho el dni campo clave por lo que solo te permite un cliente.

Otra cosa que haría es eliminar la tabla envios, y a la tabla pedidos, poner los campos de dirección, población y CP por si son distintos a la dirección del cliente, el resto de datos los puedes obtener con una consulta. Estos datos de la dirección, se pueden cargar bien con un botón de carga de dirección de envio o clicando en el formulario el campo dirección igual.

En este enlace tienes ejemplo para hacer la carga de datos en un formulario.

https://forum.openoffice.org/es/forum/v ... m.php?f=70

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)
xeski
Mensajes: 3
Registrado: Sab Nov 03, 2018 12:21 pm

Re: Actualizar Subformulario en nuevo registro

Mensaje por xeski »

Hola RMG,

Gracias por tu respuesta, seguramente se podria estructurar mejor y mas facil en una sola tabla, pero me parecia una cosa mas facil de conseguir.

Ahora he intentado cambiar el indice unico en la tabla envios y no puedo, la idea es que para cada factura haya un envio pero no puedo tampoc hacer varias factura con el mismo dni...
Me gustaria entender bien lo de los indices...

Borré algunas de las 20 macros porque no me dejaba subir mas de 128kb, y pensé que eran las macros, despues vi que no que eran las tablas...

Si os apetece ver las 20 macros que he intentado os adjunto el archivo a ver si en alguna me acerqué a la solución.

Me gustaria aprender a utilizar esta instrucción:

Sub Refresh_MainForm (oEvent As Object) 'List Box > Execute (event)
oForm = oEvent.Source.Model.Parent 'MainForm
oEvent.Source.Model.commit() 'commits the selected List Box value to the Form only
' IF oForm.isnew THEN oForm.insertRow() ELSE oForm.updateRow() 'handles both cases to avoid errors
oForm.updateRow() 'commits the List Box Bounfield; only oForm.updateRow() is required in this case due to Form filter criteria ID=0
' oForm.reload 'updates the SubForm link(s) as necessary to complete the Form 'refresh'
oForm.getByName("Formulario").getByName("Cuadro combinado 1").refresh 'necessary to update the List Box filter (listboxClass") on SubForm1
oForm.reload 'updates the SubForm link(s) as necessary to complete the Form 'refresh'
End Sub

Sub Refresh_SubForm12 (oEvent As Object) 'List Box > Execute (event)
oForm = oEvent.Source.Model.Parent
oEvent.Source.Model.commit()
oForm.updateRow() 'MainForm current record update
oForm.reload
End Sub

Saludos y gracias.
Adjuntos
subformulario macros.rar
(23.03 KiB) Descargado 262 veces
Libreoffice 6.0.62 (x64)
Windows 7
xeski
Mensajes: 3
Registrado: Sab Nov 03, 2018 12:21 pm

Re: Macro Equivalente a botón "Actualizar formulario"

Mensaje por xeski »

Hola,
He estado probando y he visto que un botón con la acción de "Actualizar formulario" hace lo mismo que me gustaria hacer, pero me gustaria hacerlo automaticamente, o sea, tendria que poner la macro equivalente al botón "Actualizar formulario" asociada en el Suceso --> Despues de actualizar.

No he encontrado la macro equivalente a "Actualizar formulario" dentro de la biblioteca de macros dentro de FormWizard.

Gracias por adelantado

Saludos
Libreoffice 6.0.62 (x64)
Windows 7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Actualizar Subformulario en nuevo registro

Mensaje por Longi »

Buenas!

No termino de entender el objetivo, pero si es como yo pienso, lo suyo sería tener un formulario principal basado en la tabla 'clients envia', con solo el cuadro combinado de DNI.
Después, un subformulario con todos los campos de la tabla 'clients envia', también basado en la misma tabla, y con conexión entre formulario y subformulario precisamente por el campo 'dni'.
Uno de los inconvenientes que tiene tu diseño es que obliga a rellenar un campo cpe, que en cada nuevo registro tendría que rellenarse, y si no no te deja, con lo que el diseño que te propongo no funciona, a no ser que quites la obligatoriedad del campo.
Si no he entendido bien, lo siento, pero supongo que me lo aclararás más adelante.

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: Actualizar Subformulario en nuevo registro

Mensaje por RMG »

Hola,

Mira el adjunto, algo simple sin macros, que si no te sirve te puede orientar un poco en cuanto al diseño.

Saludos
Adjuntos
subformulario.zip
(25.6 KiB) Descargado 297 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)
Responder