Bonjour à tous,
Sans réelle formation sur access, j'essaie de me débrouiller grâce à vos précieux conseils, mais là je sèche.
J'ai un formulaire basé sur une requete qui me permet d'afficher des noms et fonctions de contacts. J'ai ajouté à mon formulaire des textboxs pour filtrer les résultats, par exemple la textbox R_fonction. Voici la requete qui utilise le contenu des ces textboxs :
J'ai ensuite créé une procédure évènementielle sur mes textboxs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT T_Contacts.N°, T_Contacts.Nom, T_Contacts.Prenom, T_Contacts.Societe, T_Contacts.Fonction FROM T_Contacts WHERE (((T_Contacts.Nom) Like "*" & [Formulaires]![F_Liste_Contacts]![R_Nom] & "*") AND ((T_Contacts.Prenom) Like "*" & [Formulaires]![F_Liste_Contacts]![R_Prenom] & "*") AND ((T_Contacts.Societe) Like "*" & [Formulaires]![F_Liste_Contacts]![R_Societe] & "*") AND ((T_Contacts.Fonction) Like "*" & [Formulaires]![F_Liste_Contacts]![R_Fonction] & "*")) ORDER BY T_Contacts.Nom, T_Contacts.Prenom;
Le problème est que je perds le focus du textbox à chaque fois qu'une lettre est tapée. En cherchant j'ai bien trouvé une solution en modifiant le code comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub R_Fonction_KeyUp(KeyCode As Integer, Shift As Integer) Me.Requery End Sub
Cela fonctionne tant que la requete renvoie un résultat. A partir du moment où je tape un texte pour lequel la requete n'a plus de correspondance, j'ai une erreur "Erreur d'execution '2185' Impossible de faire référence à une propriété ou de la défir pour un contrôle si ce dernier n'est pas activé." comme si le textbox n'avait pas le focus alors que je viens de lui donner...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub R_Fonction_KeyUp(KeyCode As Integer, Shift As Integer) Me.Requery With Me.R_Fonction .SetFocus .SelStart = .SelLength End With End Sub
Est-ce que j'ai mal fait quelque chose ou est-ce qu'il y a une autre façon de faire ? Je sais bien que je pourrais actualiser avec un afterupdate et que cela fonctionnerait, mais ce serait plus sympathique si les résultats pouvaient se mettre à jour au fur et à mesure que l'utilisateur saisit du texte dans le textbox.
Merci de votre aide !
Partager