problema con insert into oOObase

Discute sobre las herramientas de la base de datos
Responder
olitnev
Mensajes: 9
Registrado: Mié Jul 05, 2017 1:48 am

problema con insert into oOObase

Mensaje por olitnev »

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
Última edición por olitnev el Dom Jul 09, 2017 9:41 pm, editado 1 vez en total.
OpenOffice 3.1 en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: problema con insert into oOObase

Mensaje por RMG »

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
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)
olitnev
Mensajes: 9
Registrado: Mié Jul 05, 2017 1:48 am

Re: problema con insert into oOObase

Mensaje por olitnev »

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
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: problema con insert into oOObase

Mensaje por RMG »

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
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)
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: problema con insert into oOObase

Mensaje por mauricio »

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
Angel Jimenez
Mensajes: 3
Registrado: Lun Sep 11, 2017 2:30 am
Ubicación: Barranquilla

Re: problema con insert into oOObase

Mensaje por Angel Jimenez »

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/
Responder