Bonjour
J'ai un formulaire basé sur une requête "rqt_operations" et qui contient 2 champs indépendants (une zone de liste déroulante "champfiltre" basée sur une requête "rqt_zoneliste" qui liste les champs à filtrer et une zone de texte "textefiltre").
Dans la zone de liste déroulante, je choisis le champ sur lequel je souhaite filtrer mes enregistrements. Il est composé de "Date", "Type" et "Numdocument". Ensuite, je tape lettre par lettre la valeur dans le champ "textefiltre".
Le filtre fonctionne plus ou moins : j'ai un souci avec le Focus. Après avoir tapé la 1ère lettre dans le champ "textefiltre", le focus se met sur l'objet suivant suivant l'ordre de tabulation. Je suis contraint de replacer le focus dans le champ après la lettre que j'ai tapée.
Si vous pourriez m'aider à régler ce problème, çà serait vraiment sympa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Form_Load() Me.champfiltre.Value = "Date" Me.textefiltre.SetFocus End Subrqt_operations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub textefiltre_KeyUp(KeyCode As Integer, Shift As Integer) Dim i As Integer i = KeyCode Select Case i Case 8 If Len(lettres) = 1 Or Len(lettres) = 0 Then lettres = "" Else lettres = Left(lettres, Len(lettres) - 1) End If GoTo filtrer Case 37, 39 SendKeys "{END}" Case 32, 48 To 57, 65 To 90, 97 To 122 lettres = lettres & Chr(i) Me![textefiltre] = lettres GoTo filtrer End Select Exit Sub filtrer: If Len(lettres) = 0 Then Me.FilterOn = False Else Me.Filter = "[" & Me![champfiltre] & "]" & "like '" & lettres & "*'" Me.FilterOn = True End If Me.OrderBy = "[" & Me!champfiltre & "] " & "ASC" Me.OrderByOn = True Me.textefiltre.SetFocus SendKeys "{END}" End Sub
rqt_zoneliste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT tbl_operations.o_date AS [Date], tbl_operations.o_type AS Type, tbl_operations.o_nom AS Nom, tbl_operations.o_document AS Document, tbl_operations.o_numdocument AS [N° document], tbl_operations.o_libelle AS Libellé, tbl_operations.o_categorie AS Catégorie, tbl_operations.o_prixHTVA AS [Prix HTVA], tbl_operations.o_TVA AS TVA, [o_prixHTVA]+[o_TVA] AS [Prix TVAC], tbl_operations.o_description AS Description FROM tbl_operations ORDER BY tbl_operations.o_date, tbl_operations.o_type, tbl_operations.o_nom;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT tbl_operations.o_date AS [Date], tbl_operations.o_type AS Type, tbl_operations.o_numdocument AS [N° document] FROM tbl_operations;
Partager