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 :

[Requêtes] [2000] Critères : ne pas devoir taper le même critère


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Points : 183
    Points
    183
    Par défaut [Requêtes] [2000] Critères : ne pas devoir taper le même critère
    Bonjour,

    Je cherche à faire une requête basée sur le problème suivant.

    Je souhaite sélectionner certaines fonctions avec une requête. En construisant ma requête, je prévois certains critères sous cette forme : "=[Sélectionnez le lieu]"

    Or, j'ai certains champs qui contiennent le même type de données ( parfois exactement la même donnée ). Je sais, cela peut paraître idiot, mais cela correspond parfaitement à ce que je souhaite, donc...
    Cela fait donc que, pour chacun de ces champs ( il y en a une bonne vingtaine ), je dois retaper la même chose pour le critère.

    Dès lors, lorsque je lance ma requête, je devrai taper 20 fois le même renseignement...

    Comment puis-je faire pour que je tape mon critère "=[Sélectionnez le lieu]" pour le premier champ, et que, pour les autres champs, Access prenne le même critère ( sans me donner une fenêtre "Tapez le paramètre"... ) ?

    Merci de vos réponses.

    PS1: J'ai déjà cherché dans la FAQ, mais je n'ai rien trouvé qui me corresponde...
    PS2: J'espère que j'ai été assez clair...
    DamKre
    Plus je découvre, plus je me rends compte que je ne sais rien...

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Il te suffit juste de mettre dans ta requête sur l'élément critère de chaque champs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![TonFormulaire]![ZoneDeTexteLieu]

  3. #3
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Points : 183
    Points
    183
    Par défaut
    Donc, si je comprends bien, il faut absolument avoir un formulaire pour exécuter ma requête... Comment faire, alors???
    DamKre
    Plus je découvre, plus je me rends compte que je ne sais rien...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function nomdelieu(Optional x As Variant) As String
    Static lieu As String
    If Not IsMissing(x) Then lieu = x
    nomdelieu = lieu
    End Function
    tu écris la premiére requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT lieu
    FROM matable
    WHERE lieu=nomdelieu([lieu?]);
    puis les suivantes
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT lieu
    FROM matable
    WHERE lieu=nomdelieu();
    Elle est pas belle la vie ?

  5. #5
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Points : 183
    Points
    183
    Par défaut
    et où mettre cette fonction ???
    DamKre
    Plus je découvre, plus je me rends compte que je ne sais rien...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ben tu fais altf11
    insertion module
    et tu la colles
    Elle est pas belle la vie ?

  7. #7
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    si ta requête fait plusieurs fois appel au même paramètre, comme dans l'exemple suivant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
    FROM T1
    WHERE C1 = [Sélectionnez le lieu]
    AND C2 = [Sélectionnez le lieu]
    ... Access ne devrait te le demander qu'une fois.

  8. #8
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par damkre
    Or, j'ai certains champs qui contiennent le même type de données ( parfois exactement la même donnée ). Je sais, cela peut paraître idiot, mais cela correspond parfaitement à ce que je souhaite, donc...
    Cela fait donc que, pour chacun de ces champs ( il y en a une bonne vingtaine ), je dois retaper la même chose pour le critère.

    Citation Envoyé par damkre
    Donc, si je comprends bien, il faut absolument avoir un formulaire pour exécuter ma requête

    C'est essayer d'éviter ton problème.

  9. #9
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Points : 183
    Points
    183
    Par défaut
    OK. Ca fonctionne... pour le premier champ !

    Y a-t-il un nombre de critères limités ( je ne peux en mettre que 8 ) ?

    Autre problème : il remet tous les critères sur la même ligne. Cela fait qu'il recherche les lieux sur un seul enregistrement ... et pas sur tous !
    DamKre
    Plus je découvre, plus je me rends compte que je ne sais rien...

  10. #10
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Points : 183
    Points
    183
    Par défaut
    Solution : ne pas utiliser les simples requêtes, mais bien le SQL. Là, mettre "or" au lieu de "and", et ça fonctionne très bien.

    Merci pour votre aide !
    DamKre
    Plus je découvre, plus je me rends compte que je ne sais rien...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/05/2007, 07h44
  2. Une requête qui ne reconnait pas is not null
    Par LeBauw dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 12h29
  3. Réponses: 12
    Dernier message: 02/09/2005, 17h44
  4. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12
  5. requête update qui marche pas
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 08h16

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