[RESUELTO]campo de busqueda tecla pulsada

Discute sobre las herramientas de la base de datos
Responder
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

[RESUELTO]campo de busqueda tecla pulsada

Mensaje por Oscar461 »

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.
Última edición por Oscar461 el Dom Nov 15, 2020 5:07 pm, editado 1 vez en total.
openoffice 6.2 en w10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: campo de busqueda tecla pulsada

Mensaje por RMG »

Hola,

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
Cada vez que efectúa el filtro comprueba que el campo a filtrar contiene datos, si no es el caso te avisa.

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)
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

Re: campo de busqueda tecla pulsada

Mensaje por Oscar461 »

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.
Adjuntos
ejemplo.rar
(87.43 KiB) Descargado 169 veces
openoffice 6.2 en w10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: campo de busqueda tecla pulsada

Mensaje por RMG »

Hola,

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)
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

Re: campo de busqueda tecla pulsada

Mensaje por Oscar461 »

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.
Adjuntos
error.rar
(82.71 KiB) Descargado 179 veces
openoffice 6.2 en w10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: campo de busqueda tecla pulsada

Mensaje por RMG »

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
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)
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

Re: campo de busqueda tecla pulsada

Mensaje por Oscar461 »

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.
openoffice 6.2 en w10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: campo de busqueda tecla pulsada

Mensaje por RMG »

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
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)
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

Re: campo de busqueda tecla pulsada

Mensaje por Oscar461 »

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.
Adjuntos
bd.rar
(11.44 KiB) Descargado 161 veces
openoffice 6.2 en w10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: campo de busqueda tecla pulsada

Mensaje por RMG »

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
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)
Oscar461
Mensajes: 14
Registrado: Jue Feb 27, 2020 2:04 pm

Re: campo de busqueda tecla pulsada

Mensaje por Oscar461 »

Gracias está perfecto, ahora ya veo lo que querías decirme que no llegaba a entender.
openoffice 6.2 en w10
Responder