Bonjour,
Je possède la table [AttributsFamille] suivante:
|IDAttribut|IDFamille|
__________________
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 6 | 5 |
| 8 | 5 |
| 9 | 5 |
| 1 | 6 |
| 5 | 6 |
__________________
Je souhaiterais pouvoir récupérer le nombre de chaque IDFamille présent ainsi que l'IDattribut correspondant.
Le but de ma manoeuvre, est de réussir à récupérer ces données dans un module afin de créer dynamiquement autant de combobox que d'attributs présent pour une famille donnée, et de les remplir en conséquence. Or pour le moment je bloque sur la manière me permettant de récupérer mes données d'entrée.
Avec mes connaissances actuelles, je me suis dit que je pourrais peut être décomposer le problème. D'une part en créant une requête qui m'afficherait uniquement le nombre d'occurences d'une famille donnée:
Auquel cas si famille = 2 j'obtiendrai ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part req = "SELECT IDattribut, IDfamille FROM AttributsFamille WHERE IDfamille = " + famille
|IDAttribut|IDFamille|
__________________
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
__________________
Je souhaite donc dans un premier temps en déduire le nombre de lignes (ici 3):
Jusque la, pas trop de soucis. Seulement maintenant c'est la ou je me perds.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dcount("IDFamille", "AttributsFamille", "IDfamille =" + famille)
Je sais donc que j'ai 3 lignes mais comment puis-je faire une boucle qui me renverrait via un Dlookup par exemple, chaque IDAttribut trouvés?
Voila le code sur lequel je suis en train de travailler:
Petite question subsidiaire:
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 Sub CreateAttrib() Dim i As Integer, j As Integer, ligne As Integer, colonne As Integer Set CollAttrib = New Collection Dim Cls As AttribEvents Dim Cls2 As KitEvents '##### Ajout CBox des attrib ##### i = 0 'Résultat de ma requête permettant de trouver le nombre d'attributs: j = Dcount("IDFamille", "AttributsFamille", "IDfamille =" + famille) 'Do While i<> j Dim ReqValue as string 'Je ne sais pas encore comment récupérer l'IDattribut en cours à la place de x: ReqValue = "SELECT IDAttribut, Valeur FROM ValeurAttributPossible WHERE IDAttribut = " + x + ";" Set CboxAttribut = Form_GPE.Controls.Add("Forms.combobox.1", "", True) With CboxAttribut .Name = 'récupérer le nom de l'IDattribut en cours .Height = 0.556 .Left = 14 .Top = 1.698 + (1 * i) .Width = 4 ' .Tag = i .RowSource = ReqValue End With
J'avais déjà fait quelque chose de similaire sous Excel avec un UserForm. Et les valeurs données pour positionner ou dimensionner un control n'était pas en cm. Or Access ne semble utiliser que les cm. J'ai donc pour le moment entré les valeurs en cm. Est-ce correct?
Merci d'avance pour votre aide.
Mickaël
ps: après rédaction et réflexion, je me demande si je n'aurais pas dû mettre ce sujet dans VBA pour Access. Si un modérateur passe par la, et qu'il juge préférable de le déplacer, je l'en remercie par avance.
Partager