RESUELTO: Guardar datos en dos tablas desde formulario

Discute sobre las herramientas de la base de datos

RESUELTO: Guardar datos en dos tablas desde formulario

Notapor Luismaux » Mar Feb 16, 2021 1:31 pm

Hola, llevo poco tiempo utilizando LibreOffice Base pero mucho aprendido con vosotros, cosa que es de agradecer, pero estoy realizando una Base de datos y me he quedado estancado.
Esta base está compuesta de dos tablas con registros iguales, las cuales quiero rellenar introduciendo datos desde un formulario en las dos. Mirando por el foro la única idea que me funciona a medias, es un código que al pulsar un boton guarda los datos en las dos tablas pero en una de ellas los guarda cada registro en una fila diferente y yo necesito que me los guarde todos en la misma fila.
Como no sé si me he explicado adjunto un ejemplo de lo que tengo hasta el momento, por si alguien me supiera indicar cual es el error si es en el código, o si hubiera otra forma de hacerlo.
Muchas gracias de antemano.
Adjuntos
BasePrueba.zip
(11.45 KiB) 29 veces
Última edición por Luismaux el Jue Feb 18, 2021 11:11 am, editado 1 vez en total
LibreOffice 7.0.4.2 (+86)
Luismaux
 
Mensajes: 10
Registrado: Mar Feb 16, 2021 1:22 pm

Re: Guardar datos en dos tablas desde formulario

Notapor RMG » Mar Feb 16, 2021 6:54 pm

Hola

La macro no es correcta, mira si esta te sirve, además he puesto que cargue el Id que no tenias. Recuerda que solo cargando el Id puedes obtener todos los datos de la tabla relacionada a través de una consulta.
Primero debes guardar el registro, después cargas la tabla2.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub InsertcamposEnOtrasTablasNomApell(Evento)
Dim oDeclaracion As Object
Dim sSQL As String
Dim oForm As Object
Dim iId As Integer
Dim sNomApell1 As String
Dim sDomicilio1 As String
Dim sTelefono1 As String
oForm = Evento.Source.Model.Parent
iId = oForm.getByName("IdTabla1").Value
sNomApell1 = oForm.getByName("NomApell1").Text
sDomicilio1 = oForm.getByName("Domicilio1").Text
sTelefono1 = oForm.getByName("Telefono1").Text
oDeclaracion =ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement
'Ordenes SQL a ejecutar
sSQL = "INSERT INTO ""Tbl_2"" (""IdTabla1"", ""Nombre2"", ""Domicilio2"", ""Telefono2"") VALUES (" & iId & ",'" & sNomApell1 & "'," & "'" & sDomicilio1 & "'," &  "'" & sTelefono1 & "')"
oDeclaracion.executeUpdate( sSQL )
End Sub


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

Re: Guardar datos en dos tablas desde formulario

Notapor Luismaux » Mar Feb 16, 2021 9:00 pm

Hola RMG, muchas gracias por tu rápida respuesta.
He aplicado el código que me das y hay dos problemas, uno es que solo me guarda datos en la Tbl_2, y el Id que guarda, siempre es 0.
¿La solución para guardar en la Tbl_1 podría ser añadiendo esta línea al código pero con las datos de esta tabla?
Código: Seleccionar todo   Expandir vistaContraer vista
sSQL = "INSERT INTO ""Tbl_1"" (""IdTabla1"", ""Nombre1"", ""Domicilio1"", ""Telefono1"") VALUES (" & iId & ",'" & sNomApell1 & "'," & "'" & sDomicilio1 & "'," &  "'" & sTelefono1 & "')"
oDeclaracion.executeUpdate( sSQL )

Para lo del Id no se me ocurre nada, puesto que como es autonumérico, supongo que el problema será que cuando ejecuta la macro y lo guarda el Id no se ha actualizado todavía.
Muchas gracias,
LibreOffice 7.0.4.2 (+86)
Luismaux
 
Mensajes: 10
Registrado: Mar Feb 16, 2021 1:22 pm

Re: Guardar datos en dos tablas desde formulario

Notapor RMG » Mié Feb 17, 2021 8:04 pm

Hola,

Como te digo arriba, primero debes guardar los datos en la tabla1, icono de disquete en barra de navegación de formulario, a continuación con el botón grabas los datos en tabla 2.

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

RESUELTO: Guardar datos en dos tablas desde formulario

Notapor Luismaux » Jue Feb 18, 2021 11:09 am

Es verdad, muchas gracias así va perfecto.
Muy agradecido de la ayuda que dais, muchísimas gracias.
LibreOffice 7.0.4.2 (+86)
Luismaux
 
Mensajes: 10
Registrado: Mar Feb 16, 2021 1:22 pm


Volver a Base

¿Quién está conectado?

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