Bonjour,
Dans un formulaire générique, j'ai une liste, avec sélection simple, qui est alimentée par des requètes SQL différentes (en fonction de choix de l'utilisateur).
La première requête (qui est celle qui alimente la liste par défaut au démarage du fromualire) a "TransactionID" comme nom du premier champ
La seconde requête a "PurchaseOrderID" comme nom du premier champ
Donc en fonction du choix X d'un utilisateur, la première requête est affectée à la liste comme source de données(row source).
Et en focntion du choix Y d'un utilisateur, la seconde requête est affectée à la liste comme source de données (row source).
Ce que je souhaiterai, c'est pouvoir détecter, lors d'un double clic sur la liste, quel est sa source courante et en fonction de cela lancer des actions adaptées.
J'ai donc imaginé de tester le nom du premier champ de la source qui alimente la liste.
Lorsque c'est la première requète, pas de problème, quand je double cique dans la liste, mon msgbox me retourne bien le nom du premier champs. Je change donc de source de données et là ça ne fonctionne plus. J'ai un message d'erreur.
Voici ci-dessous mon code que j'ai mis sur le double-click de la liste:
Avez-vous une idée pour pallier cela?
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 Private Sub ListGeneral_DblClick(Cancel As Integer) 'ATTENTION 'Quand on clique sur la liste, il faut tester d'abord de quelle source il s'agit puis réaliser les actions en fonction du résultat Dim rst As DAO.Recordset Dim fld As Field Dim nom As String Me.ListGeneral.RowSource = Me.ListGeneral.RowSource 'pour réaffecter le recordsource courant Set rst = Me.ListGeneral.Recordset nom = rst.Fields(0).Name 'MsgBox CStr(rst.Fields(0).Name) pour tester si c'est bien le nom attendu Select Case nom Case "TransactionID" MsgBox "liste générale" Case "PurchaseOrderID" MsgBox "liste des purchase orders" Case Else End Select nom = "" rst.Close Set rst = Nothing End Sub
Merci et à Bientôt!!!
Partager