Bonjour,
J'ai un formulaire que je filtre de manière dynamique avec une liste déroulante qui va modifier la requete source de ce formulaire.
Sur l'evenement afterUpdate de ma liste, j'ajoute juste en VBA un parametre WHERE, la valeur de cette liste deroulante.
Deux questions :
A l'ouverture de mon formulaire, je dois redefinir la requête originale.
J'ai du mal avec les DAO et je ne sais pas quelle est la meilleure façon d'écrire cette réinitialisation de la requete. J'ai fait comme ceci, est ce quelqu'un peut me corriger si ce n'est pas bon ?
Ensuite, sur l'évènement afterUpdate de ma liste déroulante, suis-je obligé de réécrire toute la requête alors que je veux seulement ajouter un "petit" WHERE ? Je veux dire, est ce qu'il n'y a pas moyen de faire plus léger en récupérant la requete originale et en lui ajoutant juste ce WHERE ?
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 Private Sub Form_Open(Cancel As Integer) Dim db As DAO.Database: Set db = CurrentDb Dim qdf As DAO.QueryDef: Set qdf = db.QueryDefs("R1") Dim strSQL As String strSQL = " SELECT..." qdf.sql = strSQL Me.RecordSource = "R1" qdf.Close Set qdf = Nothing Set db = Nothing End Sub
Si quelqu'un veut bien corriger la syntaxe aussi, parce que j'ai l'impression que ça ne va pas...
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub L1_AfterUpdate() Dim strSQL As String strSQL = "SELECT... strSQL = strSQL & " WHERE (((T_VOIES.VOI) = '" & Me.L1 & "'))" CurrentDb.QueryDefs("R1").sql = sql Me.RecordSource = "R1" Me.Requery End Sub
Partager