Funcion para autocompletar en combos
Hola, he estado buscando una funcion de autocompletar, asi como la de Office, que al poner una letra se valla directamente al primer registro almacenado con esa letra y amedida que vas poniendo mas letras se vallan reduciendo las opciones y asi encontrar la opcion que el cliente busca. Ejemplo:
en un combo tengo los nombre de clientes Arturo, Angel, Antonio, Angelica.... al darle yo en el combobox se posicionara en el primer registro ordenado alfabeticamente y amedida que le voy dando mas letras va encontrando el nombre que yo quiero....Bueno espero no sea mucho lo que estoy pidiendo...de antemano GRACIAS.
Manuel Tabardillo
en un combo tengo los nombre de clientes Arturo, Angel, Antonio, Angelica.... al darle yo en el combobox se posicionara en el primer registro ordenado alfabeticamente y amedida que le voy dando mas letras va encontrando el nombre que yo quiero....Bueno espero no sea mucho lo que estoy pidiendo...de antemano GRACIAS.
Manuel Tabardillo
eres un pendejo jajaja no sabes ni que oda con visual basic jajaja eres un idiota
Esto apareció hace algún tiempo en el foro, te copio el código tal cual estaba:
Debes tener un form con un comobobox llamado Combo1.
Luego, en el código del form escribes esto:
Dim Combo1Borrado As Boolean
Private Sub Combo1_Change()
Static YaEstoy As Boolean
On Local Error Resume Next
If Not YaEstoy Then
YaEstoy = True
unCombo_Change Combo1.Text, Combo1
YaEstoy = False
End If
Err = 0
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
unCombo_KeyDown KeyCode
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
unCombo_KeyPress KeyAscii
End Sub
Private Sub unCombo_KeyDown(KeyCode As Integer)
If KeyCode = vbKeyDelete Then
Combo1Borrado = True
Else
Combo1Borrado = False
End If
End Sub
Private Sub unCombo_KeyPress(KeyAscii As Integer)
'si se pulsa Borrar... ignorar la búsqueda al cambiar
If KeyAscii = vbKeyBack Then
Combo1Borrado = True
Else
Combo1Borrado = False
End If
End Sub
Private Sub unCombo_Change(ByVal sText As String, elCombo As ComboBox)
Dim i As Integer, L As Integer
If Not Combo1Borrado Then
L = Len(sText)
With elCombo
For i = 0 To .ListCount - 1
If StrComp(sText, Left$(.List(i), L), 1) = 0 Then
.ListIndex = i
.Text = .List(.ListIndex)
.SelStart = L
.SelLength = Len(.Text) - .SelStart
Exit For
End If
Next
End With
End If
End Sub
Private Sub Form_Load()
Combo1.AddItem "Carlos"
Combo1.AddItem "Jorge"
Combo1.AddItem "Miguel"
Combo1.AddItem "Javier"
Combo1.AddItem "Marta"
Combo1.AddItem "Pedro"
Combo1.AddItem "Abel"
Combo1.AddItem "Fernando"
Combo1.AddItem "Rafa"
Combo1.AddItem "Jose carlos"
End Sub
Saludos!
Bartolom
Chile
Debes tener un form con un comobobox llamado Combo1.
Luego, en el código del form escribes esto:
Dim Combo1Borrado As Boolean
Private Sub Combo1_Change()
Static YaEstoy As Boolean
On Local Error Resume Next
If Not YaEstoy Then
YaEstoy = True
unCombo_Change Combo1.Text, Combo1
YaEstoy = False
End If
Err = 0
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
unCombo_KeyDown KeyCode
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
unCombo_KeyPress KeyAscii
End Sub
Private Sub unCombo_KeyDown(KeyCode As Integer)
If KeyCode = vbKeyDelete Then
Combo1Borrado = True
Else
Combo1Borrado = False
End If
End Sub
Private Sub unCombo_KeyPress(KeyAscii As Integer)
'si se pulsa Borrar... ignorar la búsqueda al cambiar
If KeyAscii = vbKeyBack Then
Combo1Borrado = True
Else
Combo1Borrado = False
End If
End Sub
Private Sub unCombo_Change(ByVal sText As String, elCombo As ComboBox)
Dim i As Integer, L As Integer
If Not Combo1Borrado Then
L = Len(sText)
With elCombo
For i = 0 To .ListCount - 1
If StrComp(sText, Left$(.List(i), L), 1) = 0 Then
.ListIndex = i
.Text = .List(.ListIndex)
.SelStart = L
.SelLength = Len(.Text) - .SelStart
Exit For
End If
Next
End With
End If
End Sub
Private Sub Form_Load()
Combo1.AddItem "Carlos"
Combo1.AddItem "Jorge"
Combo1.AddItem "Miguel"
Combo1.AddItem "Javier"
Combo1.AddItem "Marta"
Combo1.AddItem "Pedro"
Combo1.AddItem "Abel"
Combo1.AddItem "Fernando"
Combo1.AddItem "Rafa"
Combo1.AddItem "Jose carlos"
End Sub
Saludos!
Bartolom
Chile
