¿Control Combo Box..?

Hola Experto ... Agradezco tu atención.. ! Tengo un control Combo box y en el quiero que al escribir una palabra, este me ayude a autocompletar la palabra realizando una búsqueda sobre un campo de una tabla. Como lo hago..¿? Te agradezco..
Respuesta
1
Para hacer lo que deseas podes seguir estos pasos:
1) Poner el combo con la propiedad Style en 0
2) En el evento KeyPress del combo escribís este código.
Dim CB As Long
Dim FindString As String
If cbNomProv.SelLength = 0 Then
FindString = combo1.Text & Chr$(KeyAscii)
Else
FindString = Left$(combo1.Text, combo1.SelStart) & Chr$(KeyAscii)
End If
CB = BuscarValor(FindString)
If CB <> -1 Then
Combo1.ListIndex = CB
Combo1.SelStart = Len(FindString)
Combo1.SelLength = Len(combo1.Text) ? combo1.SelStart
End If
KeyAscii = 0
End Sub
Si querés buscar sobre un campo de un recordset utilizá el método find y el valor que deseás encontrar.
Espero que estos datos te sean de utilidad y no olvides cerrar la pregunta.
Hasta pronto
? Donde BUSCARVALOR es una función que busca el valor, por ejemplo, en la lista de datos del mismo combo
Function BuscarValor(fs As String) As Long
Dim pri As String, L As Integer, i As Integer, encontrado As Boolean
L = Len(fs)
encontrado = False
i = 0
While i < combo1.ListCount And Not encontrado
If fs = Left(combo1.List(i), L) Then
encontrado = True
BuscarValor = i
Else
i = i + 1
End If
Wend
If Not encontrado Then BuscarValor = -1
End Function
Hola Experto ... Gracias por esta tabla de ayuda... lo que pasa es que soy bien novato en esto.. Pero la situación es que necesito buscar un campo de un recordset... y no se como implementar el método find... me puedes ayudar con esto..¿?
Muchas Gracias.. de verdad.. muchas gracias..
Atm groval
Suponiendo que rs es tu recordset, tienes que escribir:
rs.find "NombreDelCampo = 'Valor'"
Ejemplos de find:
rs.find "Apellido = 'Perez'"
Rs. Find "Precio > 100"
Luego utilizas la función EOF para detectar si encontraste el valor buscado:
if not rs.eof then
'escribir todas las acciones
end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas