Alimentation d'un ComboBox via une requête paramètrée par un autre ComboBox
Bonjour tout le monde :)
Alors voilà, j'ai une base de donnée access, les tables suivantes sont concernés par le problème en question:
-Banque
-Agence
Une banque a plusieurs agences.
Voilà à quoi ressemble la FORM sur laquelle je travaille :http://www.boostupload.com/img.php?i...289_Banque.JPG
Ce que je veux faire c'est : N'avoir dans le ComboBox de l'agence que les agences appartenant à la banque selectionnée dans le premier ComboBox.
Voici mon code :
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| '-----------------------Declaration Des Variables Globales--------------------------
Dim cnx As ADODB.Connection
Dim cob As ADODB.Recordset
Dim coa As ADODB.Recordset
Dim VarBanque As Integer
'---------------------------------
Private Sub Form_Load()
'---------------------------------
Set cnx = New ADODB.Connection
Set cob = New ADODB.Recordset
Set coa = New ADODB.Recordset
'----------------------------------------------------------------------------------
VarBanque = 1
' Là j'ai initialisé la variable VarBanque pour éviter le msg d'erreur suivant :
' "L'operation demandée necessite un enregistrement actuel"
'----------------------------------------------------------------------------------
cnx.Provider = "microsoft.jet.oledb.4.0"
cnx.ConnectionString = App.Path & "\GD.mdb"
cnx.Open
cob.Open "select NomBanque from Banque", cnx, adOpenDynamic, adLockOptimistic
coa.Open "select NomAgence from Agence where NumBanque = " & VarBanque & "", cnx, adOpenDynamic, adLockOptimistic
'------------------------------Combo Banque-------------------------------------------
cob.MoveFirst
Do
Cb.AddItem cob("NomBanque")
cob.MoveNext
Loop Until cob.EOF
'-----------------------------Combo Agence--------------------------------------------
coa.MoveFirst
Do
Ca.AddItem coa("NomAgence")
coa.MoveNext
Loop Until coa.EOF
End Sub
'----------------------ComboBox Banque Click----------------------------------------
Private Sub Cb_Click()
cob.MoveFirst
Do Until cob.EOF
If Cb = cob("NomBanque") Then
'--------------Historique-----------
B.Caption = cob("NomBanque")
'-----------------------------------
VarBanque = Cb.ListIndex + 1
End If
cob.MoveNext
Loop
End Sub
'----------------------ComboBox Agence Clik-----------------------------------------
Private Sub Ca_Click()
coa.MoveFirst
Do Until coa.EOF
If Ca = coa("NomAgence") Then
'--------------Historique------------------------------------------------------------
A.Caption = coa("NomAgence")
'------------------------------------------------------------------------------------
End If
coa.MoveNext
Loop
End Sub
'----------------------CheckBox Agence CLIK------------------------------------------
Private Sub CheckBox1_Click()
If Ca.Enabled = True Then
Ca.Text = ""
A.Caption = ""
La.Visible = False
Ca.Enabled = False
Else: Ca.Enabled = True: La.Visible = True
End If
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub |
Avec ce code j'ai dans le deuxième ComboBox les agences de la première Banque(Car j'ai initialisé la variable qui indique à la requête la banque 1).
Ca fait maintenant quatre jours que je galère dessus mais en vain :mouarf:
Je sais pas comment faire pour avoir à chaque fois que les agences appartenant à la banque selectionnée, autrement dit pour que la requete s'execute et aliment le ComboBox 'Agence' à chaque selection d'une banque.
Si quelqu'un a une idée :lol: ...
Je vous remercie d'avance pour votre collaboration :)
ça ne marche toujours pas
Au fait j'ai toujours l'erreur suivante : "L'operation demandée necessite un enregistrement actuel", signifie que le ComboBox ne retourne aucune valeur pouvant alimenter la requête :(
Ce code commence à me casser la figure :aie:
Un ptit effort les forts :king:
Réponse aux questions+Remarque
D'abord voici un aperçu des deux tables en question :
http://www.boostupload.com/files/image_916_Base.JPG
et Voici la ligne qui donne l'erreur :
http://www.boostupload.com/files/image_150_erreur.JPG
Oui je suis l'évolution des valeurs de variables par des msgbox en revanche je ne sais pas comment faire pour l'éxécution pas à pas.
Je croie que vous avez posé le doigt sur l'endroit qui fait mal, effectivement la boucle du premier ComboBox pointe à la fin sur rien :D
Je serai reconnaissant si vous me proposer comment elle pourrait à nouveau pointer sur quelque chose de mangeable :mouarf:
:)
Mes respects les plus sincères.