Buenas soy nuevo en el foro pero llevo mucho tiempo consultando la pagina y e decidido a meterme con las macros de openoffice , el tema es que tengo una tabla en base y quiero meter a personal en dicha tabla desde una macro la tabla se llama T_PERSONAL con los siguiente campo: dni(clave primaria), empleo, nombre, apellido1 apellido2 y e puesto este codigo:
Sub nuevoempleado()
Dim oDBC As Object
Dim sSQL As String
Dim oStat As Object
Dim sTit As String
Dim sMsg As String
Dim dni As String
Dim empleo As String
Dim nombre As String
Dim apellido1 As String
Dim apellido2 As String
With ThisDatabaseDocument.CurrentController
If Not .IsConnected Then .Connect
oStat=.ActiveConnection.CreateStatement
End With
dni = CInt(InputBox ("ESCRIBA EL NUMERO DE DNI"))
empleo = CInt(InputBox ("ESCRIBA SU EMPLEO"))
nombre = CInt(InputBox ("ESCRIBA SU NOMBRE"))
apellido1 = CInt(InputBox ("ESCRIBA SU PRIMER APELLIDO"))
apellido2 = CInt(InputBox ("ESCRIBA SU SEGUNDO APELLIDO"))
1 sBaseDatos = "12CIA 2.0"
sSQL="INSERT INTO ""T_PERSONAL""(""DNI"",""EMPLEO"",""NOMBRE"",""APELLIDO1"",""APELLIDO2"") VALUES ('" + DNI + "', '" + EMPLEO + "','" + NOMBRE + "','" + APELLIDO1 + "','" + APELLIDO2 + "', True)"
oDBC.executeUpdate( sSQL)
pero pero me da errorde variable no establecidsa
mi idea es meter esta macro en un boton de un formulario para poder ingresar a alguien nuevo pero estoy parado con eso y no consiguo acerla funcionar
espero que alguien pueda decirme donde esta ese error
problema con insert into oOObase
problema con insert into oOObase
Última edición por olitnev el Dom Jul 09, 2017 9:41 pm, editado 1 vez en total.
OpenOffice 3.1 en Windows 10
Re: problema con insert into oOObase
Hola,
En principio veo mal que has declarado los nombres de las variables en minúsculas y en los valores las pones en mayúsculas. Tampoco entiendo para que pones el signo +.
Saludos
En principio veo mal que has declarado los nombres de las variables en minúsculas y en los valores las pones en mayúsculas. Tampoco entiendo para que pones el signo +.
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)
Re: problema con insert into oOObase
Pero me ejecuta toda la orden me abre el bosque para introducir el DNI nombre y eso pero cuando termina me sale el error
OpenOffice 3.1 en Windows 10
Re: problema con insert into oOObase
Sí, pero no es lo mismo DNI que dni, ni NOMBRE que nombre y en la declaración de variables lo tienes de una forma en en la asignación de valores (VALUE) de otra. Por cierto el signo + veo que lo has usado en sustitución de & para concatenar, que también es valido.
Saludos
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)
Re: problema con insert into oOObase
Por favor, con una vez que publiques tu mensaje es suficiente, gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
-
- Mensajes: 3
- Registrado: Lun Sep 11, 2017 2:30 am
- Ubicación: Barranquilla
Re: problema con insert into oOObase
En respuesta a tu inquietud pues me dí a la tarea de resolver el problema con el siguiente código y me funcionó muy bien y sin problemas:
Código: Seleccionar todo
sub insertarDatos
dim oBaseContext as object
dim oDB as object
dim oCon as object
dim oStat as object
oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oBaseContext.getByName("practicas")
oCon = oDB.getConnection("","")
oStat = oCon.CreateStatement()
Dim sMsg As String
Dim dni As String
Dim empleo As String
Dim nombre As String
Dim apellido1 As String
Dim apellido2 As String
with ThisDatabaseDocument.CurrentController
if not .isConnected then
oStat = .ActiveConnection.CreateStatement
end if
end with
dni = InputBox ("ESCRIBA EL NUMERO DE DNI")
empleo = InputBox ("ESCRIBA SU EMPLEO")
nombre = InputBox ("ESCRIBA SU NOMBRE")
apellido1 = InputBox ("ESCRIBA SU PRIMER APELLIDO")
apellido2 = InputBox ("ESCRIBA SU SEGUNDO APELLIDO")
sSQL = "INSERT INTO T_PERSONAL" _
& "(""DNI"",""Empleo"",""Nombre"",""Apellido1"", ""Apellido2"") VALUES" _
& "('" & dni & "', '" & empleo & "', '" & nombre & "', '" & apellido1 & "', '" & apellido2 & "');"
oStat.executeUpdate(sSQL)
end sub
OpenOffice 4.1 en Windows 10/