[SQL][VBA][ListBox] Requête SQL pour alimenter une listbox sous VBA
Bonjour,
J'ai un problème au niveau de mise à jour d'une listbox après un afterupdate.
Le nom des différente liste est en allemand car j'effectue mon travail de master en Allemagne. Il s'agit de faire une base de donnée contenant des pieces (Bauteil) et de relié ces pièces à leur fonctions (Bauteil_Funktion). On selectionne dans la 1ere liste déroulante, le nom de la piece, et dans la deuxième liste déroulante doit se trouver les fonctions associées à cette piéces:
Pour cela, j'ai utilisé le tutoriel (très bien fait d'ailleurs) suivant:
http://argyronet.developpez.com/offi...ectitemlistAB/
Code:
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
| Private Sub cmbBauteil_AfterUpdate()
Dim lngBauteil_NUM As Long
Dim SQL As String
Dim SQL_B_to_BF As String
'' Vérifie que l'on a cliqué sur une Bauteil pour éviter le NULL
If Not IsNumeric(Me.cmbBauteil) Then Exit Sub
'' Affecte la valeur de IDBauteil à la variable lngBauteil_NUM
lngBauteil_NUM = Me.cmbBauteil
'*************************************************************'
'* Mets à jour le champ Bauteil_Funktion à partir de Bauteil *'
'* Das Bauteil_Funktion-Feld aus Bauteil-Feld zu updaten *'
'*************************************************************'
'' Construit la chaîne SQL selectionant les Bauteil_Funktion
SQL_B_to_BF = "SELECT TBL_Bauteil_Funktion.IDBauteil_Funktion, TBL_Bauteil_Funktion.NameBauteil_Funktion, " & _
"LK_Bauteil_Bauteil_Funktion.IDBauteil_Funktion FROM TBL_Bauteil_Funktion " & _
"INNER JOIN LK_Bauteil_Bauteil_Funktion ON TBL_Bauteil_Funktion.IDBauteil_Funktion=LK_Bauteil_Bauteil_Funktion.IDBauteil_Funktion " & _
"WHERE LK_Bauteil_Bauteil_Funktion.IDBauteil =" & lngBauteil_NUM & " ORDER BY TBL_Bauteil_Funktion.IDBauteil_Funktion"
'' Affecte la chaîne SQL à la liste des Bauteil_Funktion
cmbBauteil_Funktion.RowSource = SQL_B_to_BF
'' Donne le focus la liste des Bauteil_Funktion
cmbBauteil_Funktion.SetFocus
'' Déroule la liste des Bauteil_Funktion
cmbBauteil_Funktion.Dropdown |
Jusque là aucun problème. Tout marche comme souhaité.
Ensuite, j'aimerai mettre à jour des listBox avec les informations spécifiques à chaque pièces (son prix, son materiau, etc...) donc mettre à jour ceux-ci après le choix dans la 1ère liste déroulante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| '************************************************'
'* Mets à jour les champs sous le champ Bauteil *'
'* Die Felden unten das Bauteil-Feld zu updaten *'
'************************************************'
'' Mets à jour les champ correspondant à la selection
lsbB_Verwandungszweck.RowSourceType = "Table/Requête"
SQL = "SELECT TBL_Bauteil.IDBauteil, TBL_Bauteil.Verwandungszweck WHERE (((TBL_Bauteil.IDBauteil) = " & lngBauteil_NUM & ")) "
lsbB_Verwandungszweck.RowSource = SQL
MsgBox ("lsbB_Verwandungszweck.ItemData(0) après " & lsbB_Verwandungszweck.ItemData(0))
End Sub |
Dans cette partie, j'essaie de mettre à jour la list box Verwandungszweck (utilisation) avec le champ du même nom provenant de la table pièce (Bauteil) et cela ne marche pas du tout! Il ne s'affiche rien, je sais pas si cela provient de la requête SQL, (mais je l'ai testée en mode requête et cela marchait)...
C'est surement un truc stupide mais je viens de commencer la programmation VBA ainsi que la gestion de base de donnée
Voilà, j'espère que vous comprendrez mon problème
Pour info, je travaille avec deux ordis un access 2002 et un access 2007 ou j'ai importé la base de donnée de 2002, cela marche tjs sur les deux machines..
Meilleures salutations