Salut à tous, je suis débutant, j'essaye tant bien que mal d'apprendre VBA (avec Access).
Je dispose de 3 tables dans mon projet access :
- papy (id,nom)
- papa (id,id_papy,nom)
- fils (id,id_papa,nom)
Comme vous le voyez, un papy se compose de papas, et un papa se compose de fils.
Je cherche à afficher dans une liste tous les papys, avec tous leurs papa, et tous les fils des papas.
En bref, je veux un truc du genre :
papy1
|-papa11
|-papa12
|--fils121
papy2
papy3
|-papa31
papy4
|-papa41
|-papa42
|--fils421
|--fils422
...etc, le tout affiché dans ma liste.
Mon formulaire se compose d'une zone de liste toute bête, et d'un bouton.
Et voici le code :
J'arrivais à afficher la liste des papys avec un SELECT* mais là j'ai modifié un peu mon while pour essayer d'afficher les papas des papys et c'est la cata : "Erreur d'exectution 3061 : Trop peu de paramètres. 1 attendu".
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 Private Sub Bouton_Click() Dim ChnSQL As String Dim res As Recordset Dim res2 As Recordset Dim res3 As Recordset Set db = CurrentDb() ChnSQL = "SELECT * FROM papy" Set res = db.OpenRecordset(ChnSQL) List1.RowSource = "" While Not res.EOF List1.AddItem (res!nom) ChnSQL = "SELECT * FROM papa WHERE papa.id_papy=papy.id" Set res2 = db.OpenRecordset(ChnSQL) While Not res2.EOF List1.AddItem (res2!nom) Wend Wend End Sub
Merci pour votre aide !
Partager