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 :

Récupérer la valeur d’une liste déroulante pour filtrer une requête SQL [AC-2000]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Récupérer la valeur d’une liste déroulante pour filtrer une requête SQL
    Bonjour,

    Mon problème est le suivant : je voudrais récupérer la valeur d’une liste déroulante (présente dans un formulaire) pour l’utiliser comme critère dans une requête.

    J’ai fait la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Fichesupervision.Typedefiche, Fichesupervision.*, Fichesupervision.N°Secteur
    FROM Fichesupervision
    WHERE (((Fichesupervision.Typedefiche)="DP") AND ((Fichesupervision.N°Secteur)=[Forms]![Selection_Mois_Secteur].[ChxSecteur]));
    Le champ de ma liste déroulante s’appelle ChxSecteur.

    Mais quand je choisi la valeur dans la liste et qu’après je lance la requête, il renvoie le message « entrez la valeur du paramètres ».

    Donc comment faire pour qu’il récupère la valeur de ma liste déroulante dans la requête ???

    Merci d’avance

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    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 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Bonjour,
    Si la requete est dans du code VBA, il faut la constituer dans une string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SELECT Fichesupervision.Typedefiche, Fichesupervision.*, Fichesupervision.N°Secteur FROM Fichesupervision " _
    & "WHERE Fichesupervision.Typedefiche='DP' AND Fichesupervision.N°Secteur=" & [Forms]![Selection_Mois_Secteur].[ChxSecteur]
    (à placer entre ' si chxsecteur est une string)
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Non je ne l'ai pas mis dans le code VBA.
    Il le faut???

  4. #4
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 291
    Points
    291
    Billets dans le blog
    1
    Par défaut
    je mettrais plutot ça
    [Forms]![Selection_Mois_Secteur]![ChxSecteur]

    ! à la place de .

    car avec le point, access recherche le champ chxsecteur de la table selection_mois_secteur

    vérifier également le type de données de la liste (numérique ou texte)
    dans le cas d'un type texte remplacer = par like

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci de votre aide,

    C'est bon ca marche. Par contre un autre souci : ca marche que lorsque mon formulaire (ou la liste déroulante est présente) est ouvert. Dès que je le ferme, la requête ne renvoie aucune donnée....
    Est ce quelqu'un peut m'aider.

    Merci beaucoup.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    C'est normal, tu fais référence à un champ de formulaire, si le dit formulaire est fermé Access te pose la question concernant la valeur du champ.

    Il faut que ton formulaire soit ouvert.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup de toutes vos réponses... mais je viens de trouver la solution. Je passe directement de mon formulaire à mon état (qui est basé sur ma requête) et du coup ca me récupère bien la valeur de la liste déroulante, tout en filtrant les données de mon état sur cette valeur.

    En tout merci pour votre aide et pour la rapidité de vos réponses.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/06/2013, 14h05
  2. Réponses: 2
    Dernier message: 11/07/2007, 12h26
  3. [SQL] Choix dans une liste déroulante issue d'une requête SQL
    Par Moustic74 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2007, 14h06
  4. Réponses: 2
    Dernier message: 01/09/2006, 00h02
  5. [MySQL] Remplissage d'une liste déroulante à partir d'une requête SQL
    Par gaucher dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/05/2006, 15h46

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