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 :

Application SQL dans un formulaire


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Application SQL dans un formulaire
    Bonjour,
    Basé sur une requête SQL, je souhaite faire apparaître le résultat dans une zone de texte ou étiquette d'un formulaire. Cependant je n'y parviens pas.
    Avez-vous une idée de mon erreur ?
    Sachez que si vous avez d'autres manières d'arriver à cette finalité, n'hésitez pas!

    Voici la requête brute :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(Table1.NR_LIGNE)
    FROM Table1
    WHERE (((Table1.Couleur) Is Null) AND ((Table1.Matiere) Is Not Null));
    Et voici le code que j'ai appliqué en VBA :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub SQL()
    Dim StrsSQL As String
    StrsSQL = "SELECT COUNT(NR_LIGNE)" & "T_Travail" & "WHERE(((BDP_RECORD_KEY) IS NULL) AND ((IBP_RECORD KEY) IS NOT NULL));"
    DoCmd.RunSQL (StrsSQL)
    End Sub
     
    Private Sub Texte32_Click()
    Call SQL
    End Sub
    (j'ai construit cela avec ce que j'ai trouvé sur le net)

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Bonjour,
    Le fait d'exécuter une requete n'affecte pas son résultat au champ du formulaire.
    Par ailleurs count compte un nombre de lignes tous champs confondus donc autant écrire count(*)
    Il y a plusieurs façons de le faire, par exemple sur clic dans le champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Texte32_Click()
    texte32=dcount("*","table1","couleur is null and not matiere is null")
    End Sub
    On peut aussi mettre cette formule dans la propriété "valeur du champ" auquel cas le calcul est automatique, ou faire une requete et affecter son résultat à texte32...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Niquel! Merci beaucoup!!
    Si je peux vous déranger encore un peu, j'ai besoin d'une suite dans une nouvelle cellule avec pour requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Count(Table1.NR_LIGNE) 
    FROM Table1
    WHERE (((Table1.Couleur) Is Null) AND ((Table1.Matière) Is Not Null))
    GROUP BY Table1.Produit_Code;

    Elle me permet donc d'avoir le résultat précédent, mais classé par code produit.
    Comment cela se traduirait-il afin d'avoir le résultat à nouveau dans une cellule du formulaire ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    peut etre déja en enregistrant ta requète avec le group by et pour le coup effectuer un dcount sur la requete et non sur la table ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Pourquoi pas oui, je ne savais pas qu'un DCount était possible sur une requête.
    Simplement comme ceci ?

    x = Dcount("Req1", " --quel serait le domaine par conséquent ?-- ")

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    je ne suis pas un expert du dcount() mais j'ai cru lire que c'etaiot possible
    j'aurais plutot dit que le domaine c'est Req1
    x = Dcount("*","[Req1]") 
    À confirmer jamais essayé mais il me semble que j'ai lu que c'est possible

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Nom : dcount.PNG
Affichages : 91
Taille : 66,8 Ko

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Vous avez raison effectivement, mais cela n'affiche pas vraiment le résultat de la requête.

    Si j'exécute la requête je reçois comme réponse une colonne avec le nombre d'occurrence qui suivent la loi de la SQL, et en face j'ai le code produit du style :

    304 / AD
    123 / ZE
    21 / RI

    Mais la avec le Dcount je trouve 42
    Est-ce parce que le formulaire ne se prête pas a ce type de réponse ? (Sachant que pour le résultat que j'ai obtenu, j'ai utilisé une Zone de texte)

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Dcount est fait pour compter un nombre de résultat donc c'est logique qu'il renvoie un nombre.
    Si vous cherchez a afficher tous les lignes de resultats d'une requete ce n'est pas avec dcount qu'il faut procéder.
    Ou peut être ai-je mal compris la question alors

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Du coup pour cette réponse je souhaiterai comme vous l'avez dit, afficher l'ensemble des réponses de la requête dans le formulaire (il ne faut pas nécessairement un tableau si c'est impossible, mais une manière de lire les réponses logique ex: 123 : AD ou autres).
    Vous avez une idée ? Sinon je lui demande simplement de l'exécuter avec un DoCmd et le résultat apparaitra sur une nouvelle page. Mais le fait d'avoir la réponse sur le formulaire serait bien plus pertinent et pratique.

    Merci pour votre patience!!

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Votre probleme est en fait que votre requete s'affiche sur plusieurss pages et que vous etes obligés de passer les enregistrements un a un ?
    Dans ce cas il faudrait passer votre formulaire en mode continu.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Nom : continu.PNG
Affichages : 82
Taille : 22,5 Ko

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    J'ai dû mal m'exprimer et j'en suis désolé.. à ce stade, je souhaite avoir une zone de texte où lorsque l'on clique dessus, la requête s'exécute et s'affiche dans cette même zone de texte avec une liste de résultat similaire à l'exemple que je vous ai donné plus haut (123 / DE ...)
    Mais pour le moment, comme je ne sais pas comment faire cela (ou si c'est possible), je lui ai simplement demander lors du clique d'exécuter la requête qui s'affiche donc hors du formulaire comme toute requête exécuter. (DoCmd.OpenQuery "Req1")

    J'ai tout de même essayé votre petite astuce mais la requête s'exécute de la même manière, hors du formulaire.
    J'espère avoir un peu clarifié ma situation

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Ok dans votre cas c'est donc par du VBA que vous voulez executer votre requete.
    Mais je ne comprend pas pourquoi vous voulez afficher le résultat dans une seul zone de texte. et pourquoi sur click de la zone de texte.
    vous ne préférez pas afficher ces résultats dans une liste déroulante ?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Est ce que la requete que vous souhaitez executer doit recuperer une valeur au préalable dans le formulaire pour ajouter un critere aux réponses ?
    Quel est à ce stade de votre réalisation le contenu de votre formulaire ? Est il vide ? est ce un formulaire basée sur une requète ? pouvez vous me montrer un exemple de votre table converti au format access 2003

  16. #16
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 088
    Points : 5 204
    Points
    5 204
    Par défaut
    Citation Envoyé par MSpecter Voir le message
    Niquel! Merci beaucoup!!
    Si je peux vous déranger encore un peu, j'ai besoin d'une suite dans une nouvelle cellule avec pour requête :

    SELECT Count(Table1.NR_LIGNE)
    FROM Table1
    WHERE (((Table1.Couleur) Is Null) AND ((Table1.Matière) Is Not Null))
    GROUP BY Table1.Produit_Code;

    Elle me permet donc d'avoir le résultat précèdent, mais classé par code produit.
    Comment cela ce traduirait-il afin d'avoir le résultat à nouveau dans une cellule du formulaire ?
    Ce select renvoie autant de valeurs qu'il y a de codes produit donc il peut être mis dans une liste déroulante mais pas une cellule
    Si c'est le but, il suffit de déclarer comme source de la liste déroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Produit_Code, Count(*) FROM Table1 WHERE (((Table1.Couleur) Is Null) AND ((Table1.Matière) Is Not Null)) GROUP BY Produit_Code order by 1;
    ensuite le format de la liste déroulante doit avoir 2 colonnes

    Ca peut aussi alimenter un sous-formulaire suivant le même principe...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Le problème était bien la Zone de Texte!
    Merci à vous deux pour l'astuce, cela marche parfaitement avec la liste déroulante!!!

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

Discussions similaires

  1. Afficher résultat sql dans un formulaire
    Par Salsaboy60 dans le forum IHM
    Réponses: 2
    Dernier message: 15/01/2014, 18h34
  2. Réponses: 5
    Dernier message: 28/01/2010, 19h40
  3. Liste déroulante (liée à une table SQL) dans un formulaire
    Par helico57570 dans le forum Modélisation
    Réponses: 1
    Dernier message: 09/11/2009, 13h41
  4. Affichage résultat sql dans un formulaire
    Par Shivas dans le forum Langage
    Réponses: 5
    Dernier message: 21/02/2008, 02h25
  5. [HTML] Sql dans un formulaire HTML
    Par chrosnir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 03/12/2007, 17h53

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