[RESUELTO]campo de busqueda tecla pulsada
[RESUELTO]campo de busqueda tecla pulsada
Hola estoy usando un campo de busqueda de tecla pulsada con el siguiente codigo:
Sub TeclaPulsadaStandard(Evento AS object)
Dim oTxt As String
Dim oFilter As Object
Dim oFormCtl As Object
Dim oCtrl As Object
Dim sCampo
oTxt = Evento.Source.getText()
sCampo = Evento.Source.Model.Tag() 'aqui se pone el nombre del campo a buscar, el tag corresponde a la propiedad "Informacion adicional
oCtrl = Evento.Source
oFormCtl = oCtrl.Model.Parent
oFormCtl.ApplyFilter = False
If oTxt <> "" then
oFormCtl.Filter = " UPPER(" & sCampo & ") LIKE " + "UPPER('%" & oTxt & "%')"
oFormCtl.ApplyFilter = True
Else
oFormCtl.ApplyFilter = False
End if
oFormCtl.Reload
oCtrl.SetFocus()
oFormCtl.ApplyFilter = False
End Sub
Tambien tengo puesto una macro de vaciar el texto al perder el foco.
Mi pregunta seria si es posible que cuando no encuentra resultado al hacer la busqueda se puede poner un msgbox o un print con el mensaje de sin resultados.
He estado haciendo pruebas pero no consigo que funcione.
Sub TeclaPulsadaStandard(Evento AS object)
Dim oTxt As String
Dim oFilter As Object
Dim oFormCtl As Object
Dim oCtrl As Object
Dim sCampo
oTxt = Evento.Source.getText()
sCampo = Evento.Source.Model.Tag() 'aqui se pone el nombre del campo a buscar, el tag corresponde a la propiedad "Informacion adicional
oCtrl = Evento.Source
oFormCtl = oCtrl.Model.Parent
oFormCtl.ApplyFilter = False
If oTxt <> "" then
oFormCtl.Filter = " UPPER(" & sCampo & ") LIKE " + "UPPER('%" & oTxt & "%')"
oFormCtl.ApplyFilter = True
Else
oFormCtl.ApplyFilter = False
End if
oFormCtl.Reload
oCtrl.SetFocus()
oFormCtl.ApplyFilter = False
End Sub
Tambien tengo puesto una macro de vaciar el texto al perder el foco.
Mi pregunta seria si es posible que cuando no encuentra resultado al hacer la busqueda se puede poner un msgbox o un print con el mensaje de sin resultados.
He estado haciendo pruebas pero no consigo que funcione.
Última edición por Oscar461 el Dom Nov 15, 2020 5:07 pm, editado 1 vez en total.
openoffice 6.2 en w10
Re: campo de busqueda tecla pulsada
Hola,
Esta solución te podría valer.
Cada vez que efectúa el filtro comprueba que el campo a filtrar contiene datos, si no es el caso te avisa.
Saludos
Esta solución te podría valer.
Código: Seleccionar todo
If oTxt <> "" then
oFormCtl.Filter = " UPPER(" & sCampo & ") LIKE " + "UPPER('%" & oTxt & "%')"
oFormCtl.ApplyFilter = True
FormCtl.Reload
If oFormCtl.getByName(sCampo).Text = "" Then
MsgBox "sin datos"
End If
Else
oFormCtl.ApplyFilter = False
End if
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)
Re: campo de busqueda tecla pulsada
Gracias por tu respuesta, pero me da error en la línea de recarga del formulario.
Te adjunto una foto para que lo veas. Te quería haber puesto un ejemplo de la BD con lo mínimo, pero pesa mas de lo que permite y no he podido.
Te adjunto una foto para que lo veas. Te quería haber puesto un ejemplo de la BD con lo mínimo, pero pesa mas de lo que permite y no he podido.
- Adjuntos
-
- ejemplo.rar
- (87.43 KiB) Descargado 169 veces
openoffice 6.2 en w10
Re: campo de busqueda tecla pulsada
Hola,
Es oFormCtl.Reload, no FormCtl.Reload. Parece que al copiar el código no lo hice correctamente.
Saludos
Es oFormCtl.Reload, no FormCtl.Reload. Parece que al copiar el código no lo hice correctamente.
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)
Re: campo de busqueda tecla pulsada
Gracias de nuevo, ya he cambiado el Form por oForm pero me sigue dando error en la siguiente línea.
Te pongo la foto para que veas el error.
Un saludo.
Te pongo la foto para que veas el error.
Un saludo.
- Adjuntos
-
- error.rar
- (82.71 KiB) Descargado 180 veces
openoffice 6.2 en w10
Re: campo de busqueda tecla pulsada
Hola,
No encuentra el control, revisa el nombre de control de campo a buscar si corresponde con el tag. Lo mejor es que adjuntes un pequeño ejemplo. Puedes hacerlo a través de un servidor externo, tipo GoogleDrive, Dropbox, mega etc.
Saludos
No encuentra el control, revisa el nombre de control de campo a buscar si corresponde con el tag. Lo mejor es que adjuntes un pequeño ejemplo. Puedes hacerlo a través de un servidor externo, tipo GoogleDrive, Dropbox, mega etc.
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)
Re: campo de busqueda tecla pulsada
Dejo un enlace de Mega para poder descargar la BD, he mirado lo del TAG pero no he coseguido que funcione.
https://mega.nz/file/990BHaBJ#LPCyQkqw3 ... haGMmLEZtc
Un saludo.
https://mega.nz/file/990BHaBJ#LPCyQkqw3 ... haGMmLEZtc
Un saludo.
openoffice 6.2 en w10
Re: campo de busqueda tecla pulsada
Hola,
Es lo que te comentaba, debes poner el mismo nombre al campo que hace la búsqueda que al control donde la haces, así sirve para cualquier búsqueda. No es lo mismo solicitantae (tag) que CuadroSolicitante (Nombre del control).
Saludos
Es lo que te comentaba, debes poner el mismo nombre al campo que hace la búsqueda que al control donde la haces, así sirve para cualquier búsqueda. No es lo mismo solicitantae (tag) que CuadroSolicitante (Nombre del control).
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)
Re: campo de busqueda tecla pulsada
En primer lugar gracias por tu paciencia y perdona mi ignorancia pues llevo poco tiempo en esto.
He cambiado el tag de Solicitante a CuadroSolicitante y ahora me da un error al hacer la busqueda pero si me sale el msgbox.
He hecho un BD muy pequeña para ver si me lo puedes hacer funcionar ahí y asi veo donde estoy metiendo la pata.
Un saludo.
He cambiado el tag de Solicitante a CuadroSolicitante y ahora me da un error al hacer la busqueda pero si me sale el msgbox.
He hecho un BD muy pequeña para ver si me lo puedes hacer funcionar ahí y asi veo donde estoy metiendo la pata.
Un saludo.
- Adjuntos
-
- bd.rar
- (11.44 KiB) Descargado 161 veces
openoffice 6.2 en w10
Re: campo de busqueda tecla pulsada
Hola,
Mira sobre tu ejemplo anterior las modificaciones, este último bd.odb no puede conectar a la fuente de datos.
En el tag, pones el nombre del campo de la tabla que busca, en este caso (Solicitante y el control vinculado a ese campo, (cuadro de texto txtSolicitante) en vez de txtSolicitante a solo Solicitante.
Saludos
Mira sobre tu ejemplo anterior las modificaciones, este último bd.odb no puede conectar a la fuente de datos.
En el tag, pones el nombre del campo de la tabla que busca, en este caso (Solicitante y el control vinculado a ese campo, (cuadro de texto txtSolicitante) en vez de txtSolicitante a solo Solicitante.
Saludos
- Adjuntos
-
- ejemplo1.zip
- (1.09 MiB) Descargado 230 veces
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)
Re: campo de busqueda tecla pulsada
Gracias está perfecto, ahora ya veo lo que querías decirme que no llegaba a entender.
openoffice 6.2 en w10