hay alguna forma

puni
15 de Octubre del 2003
de hacer un combo que cuando escriban una "a", se habra la lista y muestre todas las palabras que empiezan con "a"
porqeu cambiando la propiedade style no hace lo que pretendo
muchas gracias

Juan
15 de Octubre del 2003
Se puede hacer echando mano de la función API SendMessage.
Aquí te pongo un ejemplo:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CB_FINDSTRING = &H14C
Private Const CB_SHOWDROPDOWN = &H14F
Private Const CB_GETDROPPEDSTATE = &H157

Private Sub Combo1_KeyPress(KeyAscii As Integer)
Dim oldText As String
If KeyAscii <> 13 Then
If SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, 0, 0) = False Then
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, 0
Combo1.ListIndex = -1
Combo1.Text = ""
End If
oldText = Combo1.Text
Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal Combo1.Text)
Combo1.Text = oldText
Combo1.SelStart = Len(oldText)
End If
End Sub

Por supuesto para ver como funciona necesitas un
combobox llamado combo1 con la propiedad Sorted=True
y los datos previamente cargados.

Baltasar
15 de Octubre del 2003
Lo veo complicado.

Yo lo resolvería poniendo un textbox y debajo del mismo un msflexgrid, tomando todo el conjunto la apariencia de un combobox ¿me he explicado?

El resto ya es saber rellenar el msflexgrid a medida que se va tecleando en el texbox.
Suerte.