VBA/Access Recuperer valeur requête sur liste
Résolu/Fermé
A voir également:
- VBA/Access Recuperer valeur requête sur liste
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Liste déroulante en cascade - Guide
- Récupérer mon compte facebook désactivé - Guide
5 réponses
blux
Messages postés
26854
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
10 mai 2025
3 340
18 mai 2009 à 10:52
18 mai 2009 à 10:52
C'est bien compliqué tout ça ;-)
Je te propose :
Je te propose :
MsgBox DCount("Etat_demande","Création", "etat_demande=2 and urgence=false")Ca devrait simplifier singulièrement le code...
blux
Messages postés
26854
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
10 mai 2025
3 340
18 mai 2009 à 10:00
18 mai 2009 à 10:00
Salut,
le nombre de lignes d'une liste déroulante est dans la propriété listcount.
If me.liste71.listcount = 0...
Mais on peut savoir aussi combien de lignes sont renvoyées par une requête simple avec la fonction dcount(...) ou une requête plus complexe avec la création d'un recordset.
Pour dcount, on imagine la requête suivante :
select champ1 from table1 where champ2 = "toto" dont on pourra connaitre le nombre de lignes renvoyées avec msgbox dcount("champ1","table1","champ2='toto'")
Pour le recordset, c'est plus complexe, on verra si tu en as besoin.
le nombre de lignes d'une liste déroulante est dans la propriété listcount.
If me.liste71.listcount = 0...
Mais on peut savoir aussi combien de lignes sont renvoyées par une requête simple avec la fonction dcount(...) ou une requête plus complexe avec la création d'un recordset.
Pour dcount, on imagine la requête suivante :
select champ1 from table1 where champ2 = "toto" dont on pourra connaitre le nombre de lignes renvoyées avec msgbox dcount("champ1","table1","champ2='toto'")
Pour le recordset, c'est plus complexe, on verra si tu en as besoin.
Merci pour cette réponse rapide blux,
Soit je me suis mal exprimé , soit je n'ai pas compris ta réponse.
Mon "Count" n'est pas la pour compter les lignes de ma zone de liste, il compte en fait le nombre de Créations faites dans ma base de données.
Cette zone de liste fait apparaitre le nombre de Créations en cour.
Je sais que la zone de liste n'est pas du tout adapté à la situation mais c'est la seule qui m'affiche le resultat de la requete sans poser de soucis.
J'ai besoin de tester si le nombre qui s'affiche dans la zone de liste est égal à 0 ou pas. (donc que le nombre de création est nul)
J'ai déja utilisé quelques RecordSet mais sur ce coup la j'avoue que je coince.
Me suis-je mieux exprimé?
Soit je me suis mal exprimé , soit je n'ai pas compris ta réponse.
Mon "Count" n'est pas la pour compter les lignes de ma zone de liste, il compte en fait le nombre de Créations faites dans ma base de données.
Cette zone de liste fait apparaitre le nombre de Créations en cour.
Je sais que la zone de liste n'est pas du tout adapté à la situation mais c'est la seule qui m'affiche le resultat de la requete sans poser de soucis.
J'ai besoin de tester si le nombre qui s'affiche dans la zone de liste est égal à 0 ou pas. (donc que le nombre de création est nul)
J'ai déja utilisé quelques RecordSet mais sur ce coup la j'avoue que je coince.
Me suis-je mieux exprimé?
blux
Messages postés
26854
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
10 mai 2025
3 340
18 mai 2009 à 10:29
18 mai 2009 à 10:29
If me.liste71.value = 0...
Maintenant, s'il te dit que la valeur est 'null', c'est que le remplissage de cette zone n'a pas été fait correctement.
Comment est-ce que tu l'effectues ?
Parce que dcount peut être une solution plus facile à gérer...
Maintenant, s'il te dit que la valeur est 'null', c'est que le remplissage de cette zone n'a pas été fait correctement.
Comment est-ce que tu l'effectues ?
Parce que dcount peut être une solution plus facile à gérer...
En effet si dcount fonctionne pour ce genre de choses j'aimerais bien que tu m'expliques ...
Sinon pour la façon de procéder...
J'ai créé une requête :
SELECT Count(Etat_demande) AS Expr1
FROM Création
WHERE (((Création.Etat_demande)=2) AND ((Création.Urgence)=False));
et j'ai rajouté dans "Contenu" dans la partie "Données" de la zone de liste :
SELECT r_C_etat_2.Expr1 FROM r_C_etat_2;
Ce qui m'affiche le résultat de la requête dans la zone de liste.
J'ai essayé beaucoup de choses et à chaque fois j'en reviens à "Null" ...
J'avoue ne pas comprendre d'où provient le Null mais bon :/
Merci :)
Sinon pour la façon de procéder...
J'ai créé une requête :
SELECT Count(Etat_demande) AS Expr1
FROM Création
WHERE (((Création.Etat_demande)=2) AND ((Création.Urgence)=False));
et j'ai rajouté dans "Contenu" dans la partie "Données" de la zone de liste :
SELECT r_C_etat_2.Expr1 FROM r_C_etat_2;
Ce qui m'affiche le résultat de la requête dans la zone de liste.
J'ai essayé beaucoup de choses et à chaque fois j'en reviens à "Null" ...
J'avoue ne pas comprendre d'où provient le Null mais bon :/
Merci :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est compliqué car j'ai "appris sur le tas" en lisant tes réponses sur beaucoup de post ^^
Je suis en stage et je n'avais jamais utilisé access et le vba donc j'essaie des choses :D
Et bien écoute ... je suis bluffé !
C'est exactement ce qu'il fallait !
Si certains ont le même soucis (même si j'en doute fort!) je vais poster ici ce que j'ai modifié.
Private Sub Commande5_Click()
If DCount("Etat_demande", "Création", "etat_demande=2 and urgence=false") = 0 Then
MsgBox "Pas de nouvelles données, faites Rafraîchir si vous désirez voir les dernières demandes créées."
Else
DoCmd.OpenForm "f_C_sauvegarde"
End If
End Sub
Merci beaucoup blux, si j'ai un soucis je sais maintenant qu'un expert à l'écoute des autres est ici ! ~~
Je suis en stage et je n'avais jamais utilisé access et le vba donc j'essaie des choses :D
Et bien écoute ... je suis bluffé !
C'est exactement ce qu'il fallait !
Si certains ont le même soucis (même si j'en doute fort!) je vais poster ici ce que j'ai modifié.
Private Sub Commande5_Click()
If DCount("Etat_demande", "Création", "etat_demande=2 and urgence=false") = 0 Then
MsgBox "Pas de nouvelles données, faites Rafraîchir si vous désirez voir les dernières demandes créées."
Else
DoCmd.OpenForm "f_C_sauvegarde"
End If
End Sub
Merci beaucoup blux, si j'ai un soucis je sais maintenant qu'un expert à l'écoute des autres est ici ! ~~