Mensaje enviado por "dezalot" <dezalot@tucbbs.com.ar>
Te mando este ejemplo donde hago en forma simple y efectiva lo que quieres hacer, toma de allí y haz las modificaciones para adaptar a tu caso especifico. Es la búsqueda dentro de un DBCombo y la voy ubicando con un TextBox
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim cTexto1 As String
KeyAscii = Asc(UCase(Chr(KeyAscii)))
cTexto1 = Text1.Text & Chr(KeyAscii)
Data1.Recordset.FindFirst ("ucase(mid(NombreCampo,1," & Len(cTexto1) & ")) = '" & cTexto1 & "'")
If Data1.Recordset.NoMatch Then
KeyAscii = 0
End If
End Sub
Esto ejemplo es igual para un dbgrid, datagrid. A esta función le puedes agregar tambien, retener el Bookmark, antes de iniciar la búsqueda (Find) y si da negativo posicionarlo nuevamente en el registro marcado.
La versión para un ComboBox, seria:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim cTexto1 As String
Dim x as Integer
KeyAscii = Asc(UCase(Chr(KeyAscii)))
cTexto1 = Text1.Text & Chr(KeyAscii)
For x = 1 to len(Combo1.ListCount)
if UCase(Mid(Combo1.list(x),1," & Len(cTexto1) & ")) = cTexto1 then
KeyAscii = 0
Exit For
Next x
End Sub
Saludos
Dante Dezalot
Tucumán - Argentina