[RESUELTO] Error de Macro al buscar registro en formulario

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Responder
pablocan
Mensajes: 40
Registrado: Dom Nov 04, 2012 7:17 pm

[RESUELTO] Error de Macro al buscar registro en formulario

Mensaje por pablocan »

Hola soy nuevo en esto y tengo problemas con una macro que uso para buscar registros en un formulario hecho en openoffice base 3.4.1 bajo windows 7, el problema es que al correr el formulario desde Oo write (para que se abra directamente) me da el siguiente error...

Imagen

El formulario corre desde Oo write (desde un orchivo llamado "Nueva base de datos.odt") y toma la base de datos de un archivo Oo Base llamado "Nueva base de datos.odb"
El Formulario se llama "Tareas" y la tabla igual
Los campos en los que busco Se llaman "DENOMINACIoN" Y "RUBRO"

La macro que estoy usando es esta:
--------------------------------------------------------------------------------------------------------------------------
Sub sInicio(Event As Object)
With ThisDatabaseDocument.CurrentController
If Not .IsConnected Then .Connect
End With
ThisDatabaseDocument.FormDocuments.GetByName("Tareas").Open
End Sub

Sub BotonBuscaEnComandoYDescripcion(Event As Object)
Dim oForm As Object
Dim oClonRS As Object
Dim bSigue As Boolean
Dim sTxt As String
Dim sSQL As String
Dim oStat As Object
Dim oRes As Object
Dim vId As Integer
oForm=Event.Source.Model.Parent
oStat=ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement
sTxt=oForm.GetByName("CampoBusqueda").Text
sSQL="SELECT ""ID"" FROM ""Tareas"" WHERE ""DENOMINACIoN"" LIKE '%" & sTxt & "%' OR ""RUBRO"" LIKE '%" & sTxt & "%'"
oRes=oStat.ExecuteQuery(sSQL)
bSigue=True
oClonRS=oForm.CreateResultSet
Do While oRes.Next And bSigue
vId=oRes.GetInt(1)
If oClonRS.First Then
Do
If oClonRS.GetInt(1)=vId Then
oForm.Absolute(oClonRS.Row)
bSigue=False
End If
Loop While oClonRS.Next And bSigue
End If
Loop
End Sub
--------------------------------------------------------------------------------------------------------------------------

Mil gracias espero que puedan ayudarme
Última edición por pablocan el Mar Nov 13, 2012 3:59 pm, editado 1 vez en total.
OPENOFFICE 3.4.1
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error de Macro al buscar registro en formulario

Mensaje por RMG »

Hola,

El problema para mi lo tienes por que ThisDataBase se referie a la Bd abierta y que se esta trabajando, como este no es el caso te da el error. Mi sugerencia, que filtres a traves del mismo formulario. Esta macro que te adjunto te debe funcionar.

Código: Seleccionar todo

'Poner en el evento tecla pulsada del buscador
Sub TeclaPulsadaStandard(Evento AS object)
	Dim oTxt As String
	Dim oFilter As Object
	Dim oFormCtl As Object
	Dim oCtrl As Object
	Dim sCampo1
	Dim sCampo2
	oTxt = Evento.Source.getText()
	sCampo1 = Evento.Source.Model.Parent.DENOMINACIoN().Name
	sCampo2 = Evento.Source.Model.Parent.RUBRO().Name
	oCtrl = Evento.Source
	oFormCtl = oCtrl.Model.Parent
	oFormCtl.ApplyFilter = False
	If oTxt <> "" then
		oFormCtl.Filter = " UPPER(" & sCampo1 & ") LIKE " + "UPPER('%" & oTxt & "%') OR  UPPER(" & sCampo2 & ") LIKE " + "UPPER('%" & oTxt & "%')" 'ENCUENTRA SI CONTIENE ALGO DE LA TECLA PULSADA
		oFormCtl.ApplyFilter = True	
	Else
		oFormCtl.ApplyFilter = False
	End if
	oFormCtl.Reload
	oCtrl.SetFocus()
	oFormCtl.ApplyFilter = False
End Sub

'Poner al perder el foco para vaciar el buscador

Sub VaciarTexto (Evento)
	Evento.Source.Model.Parent.CampoBusqueda().Text=""
End Sub
Saludos

NOTA. Te falta asignar la tabla en el origen de datos del formulario.
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)
pablocan
Mensajes: 40
Registrado: Dom Nov 04, 2012 7:17 pm

Re: Error de Macro al buscar registro en formulario

Mensaje por pablocan »

MUCHAS GRACIAS!!!!! anda perfectamente!!! felicitaciones
OPENOFFICE 3.4.1
Responder