IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

comment mettre dans un champ de formulaire le résultat d'une requête SQL?


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut comment mettre dans un champ de formulaire le résultat d'une requête SQL?
    Bonjour à tous,

    j'ai une table T1 ayant pour champs "nom" et "résultat". Le champ résultat est du type "liste" et il peut avoir trois valeurs : soit "succès" , soit "échec" soit "non_déterminé".

    j'ai fait un formulaire F1 ayant pour champ "nombre_succès", "nombre_échec" et "nombre_non_déterminé".

    J'ai édité une requête SQL qui me compte le nombre de succès :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(*) from T1 where résultat="succès";
    Cette requête retourne bien le nombre de succès.

    Cependant, je n'ai pas réussi à mettre dans le champ "nombre_succès" de mon formulaire le résultat de cette requête SQL.

    Auriez vous des astuces qui permettrent de mettre dans le champ "nombre_succès" de mon formulaire F1 le résultat de ma requête ci-dessus?

    OU BIEN

    pourriez vous me proposer un code évenement qui me permettra de faire la même opération? ( mettre dans le champ "nombre_succès" de mon formulaire F1 le nombre de succès ) ? Le nombre de succès étant donné par la requête que j'ai écrite ci-dessus.

    Merci d'avance pour votre aide intellectuelle =)

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 047
    Points : 1 042
    Points
    1 042
    Par défaut
    Bonjour
    avez vous essayé
    SELECT count(*) as nbEnregistrement FROM T1 WHERE résultat="succès";
    en affectant le nb d'enregistrement au champs

    Bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut
    Bonsoir,

    Comment affecter cette requête au champ "nombre_succès" de mon formulaire F1? C'est justement ce que je veux savoir.
    A plus

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Tu dois pour ça mettre le nom de ta requete comme étant la source de ton formulaire et mettre le nom de ton champ comme source du controle de ton formulaire. Mais cette méthode ne pourra fonctionner qu'avec une seule requete et donc un seul critère de tri (dans l'exemple "succès").

    Je te propose donc d'untuliser un peu de vba (que tu affectera sur l'événement adéquate, par exemple sur le chargement de ton formulaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Me.[nombre_succès] = DLookup("count([résultat])", "T1", "[résultat] = ""succès""")
    Me.[nombre_échec] = DLookup("count([résultat])", "T1", "[résultat] = ""échec""")
    Me.[nombre_non_déterminé] = DLookup("count([résultat])", "T1", "[résultat] = ""non_déterminé""")

    A+

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Muhad'hib
    Salut,

    Je te propose donc d'untuliser un peu de vba (que tu affectera sur l'événement adéquate, par exemple sur le chargement de ton formulaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Me.[nombre_succès] = DLookup("count([résultat])", "T1", "[résultat] = ""succès""")
    Me.[nombre_échec] = DLookup("count([résultat])", "T1", "[résultat] = ""échec""")
    Me.[nombre_non_déterminé] = DLookup("count([résultat])", "T1", "[résultat] = ""non_déterminé""")
    A+
    Pourquoi pas DCount() à la place des DLookup?

    Il pouvait aussi très bien utiliser un Recordset qu'il réinitialise pour chaque critère.
    Amicalement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Je ne faisais que proposer une des multiples possibilités. Dlookup ou Dcount reviennent quasiment au même.

    Un recordset me semble un peu compliqué pour ce genre de question, mais peut parfaitement répondre au besoin.

    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut
    Bonjour ,
    Muhad'hib, je te remercie beaucoup pour ton aide amicale. Tu m'as vraiment dépanné
    DMboup, je te remercie aussi.

    En fait, pour que les champs de mon formulaire F1 prennent les résultats que je souhaite avoir, j'ai dû éditer une table T2 à partir de laquelle j'ai édité mon formulaire F1 avec des champs numériques "nombre_succès", "nombre_échec" et "nombre_non_déterminé".

    Est-ce possible d'avoir le même résultat en éditant le formulaire F1 en "mode création" sans éditer aucune table liée à ce formulaire? Etant donné qu'en mode création, on n'a pas la possibilité d'avoir des champs numériques et que l'on a juste des zones de texte.

    Malgré mes nombreux essais et tests, le formulaire F1 que j'avais édité en "mode création" n'ayant aucun lien avec les autres tables, ne marchait pas.

    A plus.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut deux critères dans un code VBA.
    Bonjour,
    Je me sers du VBA pour faire des opérations du type :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.[nombre_échec] = DLookup("count([résultat])", "T1", "[résultat] = ""échec""")
    (dédicasse à Muhad'hib).
    Ici, il y a un seul critère : T1.[résultat]= "échec"

    Supposons qu'il ya un champ supplémentaire "âge" dans la table T1.
    Je ne sais pas comment mettre deux critères dans un code VBA.

    Que donnerait en code VBA :
    "quel est le nombre d'échec des personnes qui ont 20 ans?"
    Il y aura deux critères : T1.résultat = "échec" et T1.âge="20".
    Pourriez vous m'aider à mettre le second critère dans le code ci-dessus?

    Merci d'avance pour vos suggestions.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut
    Salut,
    j'ai enfin réussi à résoudre mon problème.
    Voici un code dans lequel on a deux critères:
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[nombre_échec] = DLookup("count([résultat])", "T1", "[résultat] = 'échec' and âge='20'")
    Il s'agissait d'un problème entre les " " et les ' '.
    A plus

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Citation Envoyé par Platon93
    (dédicasse à Muhad'hib).
    C'est sympa mais encore une fois les 2 solutions (celle de DMboup) sont tout aussi valable. Aprés vérification, Dcount semble même un peu plus rapide (ce qui semble logique)

    Pour mettre plusieurs critère, il faut utiliser les opérateur logique (comme pour les critères de requetes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.[nombre_échec] = DCount("([résultat])", "T1", "[résultat] = ""échec"" AND [âge]=20") ' si le champ âge est de type numérique 
    Me.[nombre_échec] = DCount("([résultat])", "T1", "[résultat] = ""échec"" AND [âge]=""20""") ' si le champ âge est de type texte
    A+

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 59
    Points
    59
    Par défaut
    Salut Muhad'hib,
    Merci pour ta solution. J'ai maintenant deux solutions
    je confirme ta citation : " F1 est ton amie ".
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2012, 09h56
  2. Réponses: 2
    Dernier message: 07/02/2012, 09h17
  3. Réponses: 13
    Dernier message: 26/07/2007, 08h50
  4. Récuperer dans un formulaire le résultat d'une requête count
    Par jean-paul lepetit dans le forum IHM
    Réponses: 6
    Dernier message: 29/01/2007, 10h10
  5. Réponses: 2
    Dernier message: 27/02/2006, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo