Página 1 de 1

[RESUELTO]campo de busqueda tecla pulsada

NotaPublicado: Mar Nov 03, 2020 5:10 pm
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.

Re: campo de busqueda tecla pulsada

NotaPublicado: Mié Nov 04, 2020 12:56 pm
por RMG
Hola,

Esta solución te podría valer.

Código: Seleccionar todo   Expandir vistaContraer vista
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

Re: campo de busqueda tecla pulsada

NotaPublicado: Vie Nov 06, 2020 1:02 pm
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.

Re: campo de busqueda tecla pulsada

NotaPublicado: Vie Nov 06, 2020 1:52 pm
por RMG
Hola,

Es oFormCtl.Reload, no FormCtl.Reload. Parece que al copiar el código no lo hice correctamente.

Saludos

Re: campo de busqueda tecla pulsada

NotaPublicado: Lun Nov 09, 2020 7:25 pm
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.

Re: campo de busqueda tecla pulsada

NotaPublicado: Mar Nov 10, 2020 5:13 pm
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

Re: campo de busqueda tecla pulsada

NotaPublicado: Mié Nov 11, 2020 4:35 pm
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.

Re: campo de busqueda tecla pulsada

NotaPublicado: Mié Nov 11, 2020 4:48 pm
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

Re: campo de busqueda tecla pulsada

NotaPublicado: Jue Nov 12, 2020 7:49 pm
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.

Re: campo de busqueda tecla pulsada

NotaPublicado: Vie Nov 13, 2020 11:15 am
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

Re: campo de busqueda tecla pulsada

NotaPublicado: Dom Nov 15, 2020 5:06 pm
por Oscar461
Gracias está perfecto, ahora ya veo lo que querías decirme que no llegaba a entender.