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.
RESUELTO: Guardar datos en dos tablas desde formulario
RESUELTO: Guardar datos en dos tablas desde formulario
- Adjuntos
-
- BasePrueba.zip
- (11.45 KiB) Descargado 139 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)
Re: Guardar datos en dos tablas desde formulario
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.
Saludos
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
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
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)
Re: Guardar datos en dos tablas desde formulario
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?
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,
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
sSQL = "INSERT INTO ""Tbl_1"" (""IdTabla1"", ""Nombre1"", ""Domicilio1"", ""Telefono1"") VALUES (" & iId & ",'" & sNomApell1 & "'," & "'" & sDomicilio1 & "'," & "'" & sTelefono1 & "')"
oDeclaracion.executeUpdate( sSQL )
Muchas gracias,
LibreOffice 7.0.4.2 (+86)
Re: Guardar datos en dos tablas desde formulario
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
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.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RESUELTO: Guardar datos en dos tablas desde formulario
Es verdad, muchas gracias así va perfecto.
Muy agradecido de la ayuda que dais, muchísimas gracias.
Muy agradecido de la ayuda que dais, muchísimas gracias.
LibreOffice 7.0.4.2 (+86)