cherie_cheri
Messages postés36Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention16 août 2007
-
20 juin 2007 à 10:59
cherie_cheri
Messages postés36Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention16 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...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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
cherie_cheri
Messages postés36Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention16 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?
cherie_cheri
Messages postés36Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention16 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.