Buscar en Formulario. Función RELOAD

Discute sobre las herramientas de la base de datos
Responder
Medina
Mensajes: 2
Registrado: Lun Abr 06, 2020 2:35 pm

Buscar en Formulario. Función RELOAD

Mensaje por Medina »

Buenas tardes.

Estoy intentando hacer un formulario sobre una tabla. añado un campo para buscar y le asocio el evento tecla pulsada. y no me refresca la tabla. como si no me hiciera nada.

Imagino que algo me está faltando.

Código: Seleccionar todo

Sub TeclaPulsada(Evento AS object)
   Dim oTxt As String
   Dim oFilter As Object
   Dim oFormCtl As Object
   Dim oCtrl As Object
   Dim valor
   oTxt = Evento.Source.getText()
   valor = Evento.Source.Model.Tag
   oCtrl = Evento.Source
   oFormCtl = oCtrl.Model.Parent
   oFormCtl.ApplyFilter = False
   If oTxt <> "" then
      oFormCtl.Filter = " UPPER(" & valor & ") LIKE " + "UPPER('%" & oTxt & "%')" 'ENCUENTRA SI CONTIENE ALGO DE LA TECLA PULSADA
      oFormCtl.ApplyFilter = True   
   Else
      oFormCtl.ApplyFilter = False
   End if
   oFormCtl.Reload()

   'segunda opcion que leí en el foro
   'oFormCtl.unload()
   'oFormCtl.load()

   'tercera opción que leí en el foro.
   'ThisDatabaseDocument.FormDocuments.GetByName("FEXP_PASTOS").Close()
   'ThisDatabaseDocument.FormDocuments.GetByName("FEXP_PASTOS").Open

   oCtrl.SetFocus()
   oFormCtl.ApplyFilter = False
End Sub
Mi versión de libreoffice es la 6.2.7.1

Gracias.
Windows 10. LibreOffice 6.2.7.1 (X86)
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar en Formulario. Función RELOAD

Mensaje por Longi »

Buenas!

La macro que aportas es clavada a la original (y a la que yo también manejo), lo cual quiere decir que hay algo en otro sitio que no está bien, por eso es conveniente poner ejemplos sin datos confidenciales, y vemos como está el formulario.
La macro tienes que asignarla al evento de tecla pulsada, y el campo de texto no debe tener ningún origen de datos, solo se escribe en él, pero sin grabar nada en la tabla.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Buscar en Formulario. Función RELOAD

Mensaje por RMG »

Hola,

Completando el comentario de Longi, el filtro actua sobre el formulario, y no sobre la tabla.

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)
Medina
Mensajes: 2
Registrado: Lun Abr 06, 2020 2:35 pm

Re: Buscar en Formulario. Función RELOAD

Mensaje por Medina »

Como se adjunta un ejemplo de fichero Odb. Tengo solo 1 tabla y 1 formulario con esa función y me ocupa 740 Kbytes y no me deja adjuntarlo en el post del foro. Como os la puedo hacer llegar?.

Gracias por responder tan rápido.
Windows 10. LibreOffice 6.2.7.1 (X86)
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Buscar en Formulario. Función RELOAD

Mensaje por RMG »

Hola,

Debes comprimirlo en .zip o .rar y adjuntarlo. Tambien puedes poner el archivo en un servidor tipo Dropbox, Google Drive, Mega etc. y poner el enlace.

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