[Access] + [VBA] Deux combobox liées - Au secours

Deux combobox liées - Au secours [Access] + [VBA] - SQL/NoSQL - Programmation

Marsh Posté le 31-07-2006 à 13:32:35    

Bonjour,
 
Je cherche à mettre à jour les valeurs d'une combobox d'après ce que l'utilisateur a choisi dans la première combobox. J'avoue que je ne trouve pas du tout malgré des heures de pataugeage (?)
 
J'avais pensé à Rajouter comme valeur une requête du style

Select problem_desc from Category, Problem where Category.Category_desc = Problem.Category_desc and Problem.Category_DEsc  = Combo0.Text


 
mais ça ne marche pas. je donne un exemple:
 
J'ai une combobox avec les valeurs (homme, femme, enfant) et je veux que selon ce que je choisi les valeurs de la deuxième combo s'adaptent. PAr exemple, hors de question d'avoir "Homme" "Enceinte" ou "Enfant" "Pensionné". Ce sont des exemples bidons mais je crois que l'on voit bien ce que je veux dire.
 
Merci d'avance pour votre aide. Au secours. Et si je peux me permettre, c'est relativement urgent. ;-)


---------------

Reply

Marsh Posté le 31-07-2006 à 13:32:35   

Reply

Marsh Posté le 31-07-2006 à 14:25:36    

En VBA, tu pourras gérer tes combos avec des listrow différentes en fonction de ce qui est choisi dans la premiere. Lors de la sélection d'une valeur dans la combo1, tu rends visible ta combo 2, et tu lui charges les possibilités en fonction du choix de combo1... Tu vois ce ke je veux dire ?

Reply

Marsh Posté le 31-07-2006 à 15:19:00    

Bonjour,
qu'est-ce qui ne marche pas?
as-tu mis un refresh dans l'évènement after update de Combo0? pour rafraîchir la requète?
Cordialement

Reply

Marsh Posté le 01-08-2006 à 09:57:24    

Private Sub Combo0_Change()
Dim SQL As String
Dim vq As String
vq = Combo0.Text
SQL = "Select Problem.problem_desc from Category, Problem where Category.Category_desc = Problem.Cat_desc and Category.Category_desc = "" & vq & """
DoCmd.RunSQL (SQL)
Combo2.ListRows = SQL
Combo2.Enabled = True
End Sub


 
J'avais pensé à un truc de ce style , mais déjà la query plante alors...  [:flourella]  
 
Et comment adapter les valeurs de la combo2 d'après les résultats de la query ?


---------------

Reply

Marsh Posté le 01-08-2006 à 13:11:56    

Bonjour,
ai-je bien compris?
tu veux que la liste de combo2 contienne tous les problem_desc
de la table Problem dont le Cat_desc est = au contenu de Combo0
?
Cordialement

Reply

Marsh Posté le 02-08-2006 à 22:43:07    

seniorpapou a écrit :

Bonjour,
ai-je bien compris?
tu veux que la liste de combo2 contienne tous les problem_desc
de la table Problem dont le Cat_desc est = au contenu de Combo0
?
Cordialement


 
 
tout à fait :jap:


---------------

Reply

Marsh Posté le 03-08-2006 à 08:30:18    

Bonjour,
 
Au niveau : "contenu" des propriétés de Combo1 mettre la ligne suivante:
 
SELECT Problem.problem_desc, Problem.Cat_desc FROM Problem WHERE (([Cat_desc])=Formulaires!Formulaire1!Combo0);
 
 
au niveau "après MAJ" (évènements) de Combo0 demander génération de code et mettre refresh, on doit trouver ceci:
 
Private Sub Combo0_AfterUpdate()
Refresh
End Sub
 
 
Cordialement

Reply

Marsh Posté le 03-08-2006 à 15:40:33    

Merci pour ton aide, mais si je fais ton résultat j'obtient la Cat_desc dans la deuxième combo.
 
J'ai un peu corrigé :
 

SELECT Problem.problem_desc FROM Problem, Category WHERE (([Problem.Cat_desc])=Forms!Form1!Combo0);  


 
mais cela ne trouve aucun record... [:flourella]


---------------

Reply

Marsh Posté le 03-08-2006 à 17:46:44    

Bonsoir
Désolé, j'avais stupidement raisonné en VBA en imaginant bètement que pour VB la logique était la même
 :pt1cable:  :pfff:  
Cordialement


Message édité par seniorpapou le 04-08-2006 à 07:40:55
Reply

Marsh Posté le 04-08-2006 à 08:55:58    

Bonjour,
par contre j'ai trouvé cela:
(en général le site est difficile d'accès, il faut renouveler la demande avec obstination):
 
http://support.microsoft.com/newsg [...] 0dab1c04c9

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed