Actualizar Subformulario en nuevo registro

Discute sobre las herramientas de la base de datos

Actualizar Subformulario en nuevo registro

Notapor xeski » Vie Dic 07, 2018 3:04 am

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) 1 vez
Libreoffice 6.0.62 (x64)
Windows 7
xeski
 
Mensajes: 3
Registrado: Sab Nov 03, 2018 12:21 pm

Re: Actualizar Subformulario en nuevo registro

Notapor RMG » Vie Dic 07, 2018 6:44 pm

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.

viewforum.php?f=70

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

Re: Actualizar Subformulario en nuevo registro

Notapor xeski » Vie Dic 07, 2018 7:14 pm

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) 1 vez
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"

Notapor xeski » Sab Dic 08, 2018 10:26 am

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

Re: Actualizar Subformulario en nuevo registro

Notapor Longi » Sab Dic 08, 2018 4:12 pm

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.5, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.0, en Windows 10
Longi
 
Mensajes: 425
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Actualizar Subformulario en nuevo registro

Notapor RMG » Dom Dic 09, 2018 12:41 pm

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) 2 veces
OpenOffice 4.1.5 y LibreOffice 5.4.5.1 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3349
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España


Volver a Base

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados