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 :

Passer un paramètre à une requête ?


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Par défaut Passer un paramètre à une requête ?
    Bonjour à tous. Je suis un programmeur VB et là j'accroche dans quelque chose qui doit être tellement évident que je me sens nul. Ça fait 3 jours que je cherche comment passer un paramètre à une requête sans succès. Je m'explique.
    J'ai une table de clients chacun provenant d'une compagnie. Je veux faire un graphique simple simple simple me donnant le nombre de client par tranche d'âge pour la compagnie sélectionnée. Voici comment je procède. J'ai produit un formulaire avec une liste déroulante [liste_noms] qui contient tous les noms des compagnies dans la BD. J'ai mis un bouton qui, en le cliquant, me sort un état avec le graphique de la compagnie sélectionnée dans la liste (en théorie). Le problème c'est que je ne suis pas capable de passer le nom de la compagnie. À chaque fois, j'ai un pop-up me demandant [nom_compagnie]. Si je l'entre, tout fonctionne. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Par tranche d'âge"
    stLinkCriteria = "[nom_compagnie]=" & Me![liste_noms]
    DoCmd.OpenReport stDocName, , , stLinkCriteria
    J'ouvre l'état sans problème mais comme c'est pas à lui que je dois dire le nom de la compagnie mais à la requête, j'ai le pop-up me demandant le nom.

    DoCmd.OpenQuery ne permet pas stLinkCriteria Alors quoi faire?!
    -Un gars qui commence sérieusement à désespérer.

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut, et bienvenu.

    dans quel contexte utilise tu ta requete?
    parceque tu peux dans le QBE sous le champ [nom_compagnie] mettre dans la condition la valeur de la liste: Forms![monForm]![liste_noms]

    sinon en composant ta requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sSQL="SELECT * FROM maTable"
    sSQL=sSQL + " WHERE [nom_compagnie]='" & Me![liste_noms] & "'"
    objet.RecordSource=sSQL
    je viens de remarquer que tu as surement une erreur ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stLinkCriteria = "[nom_compagnie]=" & Me![liste_noms]
    c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stLinkCriteria = "[nom_compagnie]='" & Me![liste_noms] & "'"
    si nom n'est pas une valeur mais un texte

  3. #3
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Donc, en gros :
    - tu as un formulaire, dans lequel il y a une zone de liste déroulante (ZDL) dans laquelle tu choisis une société. il contient également un bouton de commande (CMD) qui lance une procédure évènementielle qui ouvre un état
    - tu as une requête, qui contient un paramètre pour le nom de la société
    - tu as un état qui pointe sur cette requête.
    - tu n'arrives pas à passer le nom choisi dans la liste à ta requête.

    Solution :
    - modifie ta requête
    - supprime le paramètre
    - met en critère la ZDL du formulaire

    C'est fini.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Par défaut Ça y est presque... :)
    ÇA MARCHE!! Un gros merci à vous deux. Enfin, ça avance. Dernière petite chose. Mon état a besoin d'avoir le nom de la compagnie. Dans l'entête, j'ai mis un simple champ texte (nommé "titre") mais je ne comprend pas pourquoi je n'arrive pas à le modifier dynamiquement. Voici la ligne que j'utilise à partir de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Reports]![Statistique par statut d'emploi]![titre] = "Compagnie ABC"
    J'ai un message comme de quoi j'ai mal orthographié (ce n'est pas le cas) ou que l'état n'est pas ouvert ou n'existe pas. Qu'st-ce qui cloche? Merci encore de votre aide!

  5. #5
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Au moment où cette ligne est exécutée, il faut que ton etat soit ouvert !

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    Bonjour,

    Je profite de ce topic pour poser une question en rapport avec le sujet.

    Sur le même principe que babu2001, je cherche à faire la même chose avec plusieurs zones de liste déroulante liées à une même requête. Si une zone de liste n'est pas renseignée, alors on ne prend pas en compte le champ dans la recherche.

    Exemple :

    J'ai en ZLD les champs "Chef de Projet", "Lieu", "Catégorie" dans mon formulaire.
    J'ai une requête sur table avec les 3 champs ci-dessus.
    Pour l'instant, mis à part en envisageant chaque cas (ici 2³ soit 8 cas) séparément, je ne vois pas trop comment avancer : si la ZDL "Lieu" n'est pas remplie, alors ma requête recherche un élement vide dans le champ Lieu :/ (je souhaiterais que la requête ignore ce champ s'il n'est pas renseigné)

    Merci d'avance !

Discussions similaires

  1. [AC-2010] Passer paramètre à une requête dans un formulaire
    Par John Parker dans le forum IHM
    Réponses: 1
    Dernier message: 28/04/2015, 16h34
  2. [AC-2007] passer des paramètres à une requête en VBA
    Par symbabeauchat dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/11/2011, 22h38
  3. Réponses: 2
    Dernier message: 03/05/2006, 17h00
  4. [VBA-A]passer en paramètre une partie du nom de tables?
    Par pheno82 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/03/2006, 11h26
  5. Réponses: 6
    Dernier message: 12/03/2006, 17h30

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