conexion mediante macro en oobase

Guías sobre la base de datos
Reglas del Foro
Este sub-foro no es para hacer preguntas
Aquí encontrará guías básicas sobre cómo utilizar AOO Base. Para realizar preguntas sobre estas guías, por favor inicie un nuevo tema en el sub-foro apropiado.

También puede consultar la Documentación disponible sobre Apache OpenOffice

conexion mediante macro en oobase

Notapor chip01 » Mié Abr 15, 2009 12:39 pm

Hola a todos soy nuevo en el foro, en realidad no voy a consultar nada solamente espero hacer aportes y espero que sea de ayuda para alguien, he estado programando macros en base y no encontre mucha ayuda en la web por eso coloco aqui el codigo explicado de como conectarse a una base de datos en un form de base, y de como pasar un registro a otra tabla y luego borrarlo, primero tienen que hacer un formulario, luego tienen que hacer el macro, en herramientas>macros>organizar macros>openoffice.org basic..., haceindo click en nuevo. luego lo asignan al evento "boton del raton pulsado"

sub insertar(event As Object)
Dim Form As Object
Dim numero As string
Dim oStmt
Dim sSql$
Dim iBox as Integer
iBox = MB_YESNO + MB_DEFBUTTON2 + MB_ICONQUESTION


Form=Event.Source.Model.Parent 'obtengo el form
numero=Form.getByName("campo_num").Text 'busco el componente y el contenido lo pongo en la variable

'**************coneccion con la base de datos*********************
sName = ConverttoURL("C:\base_de_datos.odb")
oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDB = oBaseContext.getByName(sName)
oCon = oDB.getConnection("", "")
'*****************************************************************
If MsgBox ("Desea cambiar el registro numero:" + numero + Chr(13) + _
"a la tabla tabla2?", iBox) = IDYES Then

sSql = "INSERT INTO ""tabla2"" (""campo1"",""campo2"",""campo3"") SELECT ""campo1"",""campo2"",""campo3"" FROM ""tabla"" WHERE ""NUMERO"" = ? "
oStmt = oCon.PrepareStatement(sSql) 'seteo los parametros
oStmt.Setstring( 1 , numero) 'parametro 1 (?)
oStmt.executeUpdate()

sSql = "DELETE FROM tabla1 WHERE NUMERO = ?"
oStmt = oCon.PrepareStatement(sSql) 'seteo los parametros
oStmt.Setstring( 1 , numero) 'parametro 1 (?)
oStmt.executeUpdate() 'ejecuto la consulta

Form.Reload 'hace un refresh del form
'**********Limpio los campos ***************
Form.getByName("campo_num").Text=""
Form.getByName("marca").Text=""
Form.getByName("matricula").Text=""
Form.getByName("compra").Text=""
Form.getByName("modelo").Text=""
'********************************************
end if
oCon.close()
oCon.dispose()

end sub
a continuacion les dejo unas imagenes
macro1.JPG
macro1.JPG (13.83 KiB) Visto 3837 veces
macro2.JPG
macro2.JPG (43.36 KiB) Visto 3839 veces
chip01
 
Mensajes: 1
Registrado: Mié Abr 15, 2009 12:13 pm

Volver a Guías para Base

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado