ACCESS liste déroulante [Résolu]

Signaler
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007
-
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007
-
bonjour
je voudrais faire une liste déroulante avec comme valeur des informations provenant d'une table et une valeur "--tous les champs--".

Voici le code que je tape :
Private Sub Form_Load()
Req = "select ref_banque from banque"
DoCmd.OpenQuery Req

choixBanque.AddItem "--tous les champs--"
choixBanque.AddItem Req

End Sub

Mais il m'affiche ce message d'erreur :
"impossible de trouver l'objet 'select ref_banque from banque'

Alors j'ai déja testé de faire appel a une requete (créer sous l'interface de requete) mais ca ne marche pas non plus...

Merci de vos future reponse

8 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
faut executer la requete (donc recuperer un Recordset : un jeu d'enregistrement)

il ne te reste plus ensuite qu'a parcourir ce recordset, en ajoutant  un a un les items dans ta liste...

voilà ce que ca donne (j'ai trié par code banque)

Private Sub Form_Load()
Dim oRs As Recordset
Dim Req As String
   Req = "SELECT [ref_banque] FROM [banque] ORDER BY [ref_banque]"
   Set oRs = CurrentDb.OpenRecordset(Req)
   
   choixBanque.AddItem "--tous les champs--"
   Do Until oRs.EOF
       choixBanque.AddItem oRs.Fields(0)
       oRs.MoveNext
   Loop
End Sub , ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
OpenQuery  va ouvrir une requete par son nom, elle doit donc exister dans les requetes enregistrées das ta base.

tu n'a pas, j'imagine, de requete nommée "select ref_banque from banque"

...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
Salut,
Sur quelle ligne VB te donne t il cette erreur?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
Re,
Ah bah oui.
Pour continuer, je dirais que  choixBanque.AddItem Req n'ajoutera pas dans la liste le résultat de la requete (enfin pas que je sache)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

ok je vais testé ca alors..
mais ma requete existé en fait :s bizarre..
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

ok nikel ca fonctionne..MERCI
maintenant une fois que j'ai selectionné ma valeur dans la liste, ca me met a jour un sous formulaire basé sur une requete.

voici ma requete :
SELECT action.libelle_action, Count(agence.ref_GCIB) AS [Nombre de dossier]
FROM action, agence, action_agence
WHERE action.ref_action=action_agence.ref_action
AND action_agence.ref_GCIB=agence.ref_GCIB
AND agence.ref_banque=[formulaires]![nb dossier acti banque v2]![choixBanque]))
GROUP BY action.libelle_action;

voici le code de mise a jour du sous formulaire:
Private Sub Commande6_Click()
Me.Fille4.Requery
End Sub

donc quand je selectionne une banque dans la liste ca marche. Mais quand je selectionne --tous les champs-- ca ne marche pas.
Ce qui est normal étant donné qu'aucune banque ne s'appelle ainsi. Et je ne vois pas trop comment le dire...
je sais qu'il va me falloir un IF mais après faut il que je mette la requete dans le VBA? comment faire pour que le résultat s'affiche dans mon sous formulaire?

merci
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

bon voila ce que j'ai fait pour le moment mais rien ne s'affiche donc j'ai une erreur. Mais j'arrive pas a décoler mon nez de cette solution.

Private Sub Commande6_Click()
If choixBanque.Value = "TOUT" Then
MsgBox "je suis la", vbInformation
Me.Fille4.SourceObject = "nb dossier acti banque v2"
Me.Fille4.Requery
Else:
MsgBox "je suis ici", vbInformation
Me.Fille4.SourceObject = "nombre de dossier par activité pour une banque donnée"
End If
End Sub

"nb dossier acti banque v2" et "nombre de dossier par activité pour une banque donnée" sont des requetes.

Merci de vos reponses :D
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

personne ne peut m'aider a ce niveau. Je suis vraiement bloquée