Primeramente dar las gracias a todos los que compartis y ayudais a los novatos como yo, y gracias por todos esos manuales y ejemplos de aplicaciones.
Me encuentro trabado en lo siguiente:
- Tengo una tabla en la que la clave primaria es el campo "DNI" y en la que grabo las nuevas altas de personal
- Ademas de esta, tengo otras cinco tablas enlazadas con la primera por clave primaria tambien "DNI"
- Necesito "insertar", "copiar"... cuando grabo una nueva alta el dato "DNI" en el resto de tablas.
Lo he intentado con esta subrutina:
Código: Seleccionar todo
Sub InsertDNIToOtherTables()
Dim oDBC As Object
Dim oBD As Object
Dim oConexion As Object
Dim oDeclaracion As Object
Dim sSQL0 As String, sSQL1 As String, sSQL2 As String, sSQL3 As String, sSQL4 As String, sSQL5 As String, sSQL6 As String
Dim oDoc As Object
Dim oDrawpage As Object
Dim oForm As Object
Dim oCtrlDNI As Object
Dim oCtrlButActualizarTablas As Object
Dim Resultado As String
'Ordenes SQL a ejecutar
'sSQL0 = "INSERT INTO ""tblAccAdmPreZO"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL0 = "INSERT INTO ""tblAccAdmPreZO"" (""DNI"") SELECT (""DNI"") FROM ""tblDBFCivil"" WHERE ""DNI"" = ('" & sDNI & "')"
sSQL1 = "INSERT INTO ""tblBajMed"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL2 = "INSERT INTO ""tblComisiones"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL3 = "INSERT INTO ""tblConPruPsi"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL4 = "INSERT INTO ""tblConRecMed"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL5 = "INSERT INTO ""tblDBFMilitar"" (""DNI"") VALUES ('" & sDNI & "')"
sSQL6 = "INSERT INTO ""tblSitLisRev"" (""DNI"") VALUES ('" & sDNI & "')"
'Creamos el servicio para acceder y manipular las bases de datos
oDBC = createUnoService("com.sun.star.sdb.DatabaseContext")
'Nos aseguramos de que exista la base de datos
If oDBC.hasByName( sBaseDatos ) Then
'Si existe, accedemos por el nombre
oBD = oDBC.getByName( sBaseDatos )
'Creamos una conexion a la base de datos
oConexion = oBD.getConnection("","")
'Creamos un objeto para las instrucciones SQL
oDeclaracion = oConexion.createStatement()
'*** OBTENEMOS EL NUMERO DE DNI ********************************************
Call getDNI()
MsgBox sDNI
'Ejecutamos la inserción de datos
Resultado = oDeclaracion.executeUpdate( sSQL0 )
MsgBox Resultado
oDeclaracion.executeUpdate( sSQL1 )
oDeclaracion.executeUpdate( sSQL2 )
oDeclaracion.executeUpdate( sSQL3 )
oDeclaracion.executeUpdate( sSQL4 )
oDeclaracion.executeUpdate( sSQL5 )
oDeclaracion.executeUpdate( sSQL6 )
MsgBox "Aparentemente todo ha terminado de forma correcta."
Else
MsgBox "La base de datos no existe."
End If
End Sub
"sSQL0 = "INSERT INTO ""tblAccAdmPreZO"" (""DNI"") SELECT (""DNI"") FROM ""tblDBFCivil"" WHERE ""DNI"" = ('" & sDNI & "')" me retorna "0" como valor de retorno pero no da error.
Ninguna de las dos me funciona. Se que el código no esta todo lo optimizado que debiera pero estoy empezando y de momento voy como puedo.
Gracias, espero haberme explicado como debiera.
Salu2.