Liste Déroulante: Allez à A,Z...
PseudoNana
Messages postés
11
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Je travaille sur Access 2003 et cherche à accélérez ma saisie.
J'ai crée une liste déroulante avec deux colonnes : une comprenant le code insee (colonne liée cachée) et une autre avec le nom des communes. Au lieu de défiler toute ma liste pour arriver aux communes commençant par les dernières lettres de l'alphabet, je souhaite taper la lettre Z dans ma liste par exemple et arriver automatiquement aux communes commençant par Z.
Comment faire?
Je travaille sur Access 2003 et cherche à accélérez ma saisie.
J'ai crée une liste déroulante avec deux colonnes : une comprenant le code insee (colonne liée cachée) et une autre avec le nom des communes. Au lieu de défiler toute ma liste pour arriver aux communes commençant par les dernières lettres de l'alphabet, je souhaite taper la lettre Z dans ma liste par exemple et arriver automatiquement aux communes commençant par Z.
Comment faire?
A voir également:
- Liste Déroulante: Allez à A,Z...
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Site dangereux liste - Guide
3 réponses
bonjour,
voici un extrait de https://vb.developpez.com/faq/?page=Controles#combo_larg
Copiez tout d'abord ces déclarations au début du module de la form :
Tout le reste du code se situe dans la procédure de l'événement KeyPress, qui a lieu chaque fois qu'un caractère est entré :
bon courage
;o)
polux
voici un extrait de https://vb.developpez.com/faq/?page=Controles#combo_larg
Copiez tout d'abord ces déclarations au début du module de la form :
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
Tout le reste du code se situe dans la procédure de l'événement KeyPress, qui a lieu chaque fois qu'un caractère est entré :
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Dim Trouve As Long, Position As Integer, Taille As Integer, strTemp As String
With Me.Combo1
If KeyAscii = 8 Then
If .SelStart = 0 Then Exit Sub
.SelStart = .SelStart - 1
.SelText = ""
Else
Position = .SelStart
strTemp = .Text
End If
.SelText = Chr(KeyAscii)
Trouve = SendMessage(.hwnd, CB_FINDSTRING, 0, ByVal .Text)
If Trouve = -1 Then
'les trois lignes suivantes doivent être enlevées en cas de non correspondance possible
.Text = strTemp
.SelStart = Position
.SelLength = (Len(.Text) - Position)
KeyAscii = 0
Exit Sub
Else
Position = .SelStart
Taille = Len(.List(Trouve)) - Len(.Text)
.SelText = .SelText & Right(.List(Trouve), Taille)
.SelStart = Position
.SelLength = Taille
KeyAscii = 0
End If
End With
End Sub
bon courage
;o)
polux