Página 1 de 1

conexion mediante macro en oobase

Publicado: Mié Abr 15, 2009 12:39 pm
por chip01
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 7703 veces
macro2.JPG
macro2.JPG (43.36 KiB) Visto 7705 veces