ACCESS liste déroulante

Résolu
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007 - 20 juin 2007 à 10:59
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007 - 20 juin 2007 à 14:56
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
20 juin 2007 à 11:06
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
20 juin 2007 à 11:01
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
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 juin 2007 à 11:02
Salut,
Sur quelle ligne VB te donne t il cette erreur?

@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 juin 2007 à 11:03
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
20 juin 2007 à 11:11
ok je vais testé ca alors..
mais ma requete existé en fait :s bizarre..
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
20 juin 2007 à 11:18
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
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
20 juin 2007 à 11:58
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
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
20 juin 2007 à 14:56
personne ne peut m'aider a ce niveau. Je suis vraiement bloquée
0