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 :

[SQL] recherche multicritères --> affichage de mauvais enregistrements


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut [SQL] recherche multicritères --> affichage de mauvais enregistrements
    Bonjour, et merci à ceux qui me reprondront

    Alors voilà, j'ai un formulaire de recherche multicritère, je n'ai pas de problème pour créer les requètes. J'ai un critère qui est le créneau horaire (donc de 1 à 24) que je choisit avec une liste déroulante.
    Le problème se pose au niveau de l'affichage : quand je choisit 2 par exemple il m'affiche les résultats dont le créneau horaire est 2, 12, 20, 21, 22, 23, 24....

    J'ai essayé en mettant un 0 devant les chiffres seuls mais Access ne l'accepte pas.

    Est ce que quelqu'un sait comment remédier à ce problème ?

    Merci

  2. #2
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Salut,

    j'imagine que tu t'es inspirée du tutoriel de caféine. En tout cas, si tu passes par la construction dynamique de ton instruction SQL avec la clause WHERE spécifique à ton filtre, il faut que tu repères la ligne de code qui construit le critère pour le champ stockant la valeur du créneau horaire.
    En effet actuellement, tu dois avoir quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "NomChampCréneauHoraire Like '*" & ValeurCritère & "*'"
    C'est à dire que tu traites ton champ comme une chaine de caractère sur laquelle tu fais une recherche partielle grâce au *.
    Or il serait plus juste de traiter ton champ comme un champ numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "NomChampCréneauHoraire =" & ValeurCritère

  3. #3
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Merci de ta réponse,
    en effet je me suis inspirée du tutoriel de cafeine.
    Alors j'ai fait le changement que tu m'as dit, mais maintenant aucun enregistrement n'apparait dans la zone de liste de résultats., voilà une partie du code avec ta modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Me.Créneau And Not Me.Année And Not Me.Mois Then
        Sql = "SELECT NuméroAuto, Année, Mois, Heure, Taux, Transaction FROM CRENEAU_HORAIRE WHERE CRENEAU_HORAIRE!Heure =  & Me.ValeurCréneau "
    End If
    Si tu as d'autres idées je suis preneuse...

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Par défaut
    je tente ma première réponse (me tapez pas )
    dans mon cas je traite la variable comme une chaîne de caractère
    ce qui est moins bien que la solution de Fred

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Me.Créneau And Not Me.Année And Not Me.Mois Then
    SQL = "SELECT NuméroAuto, Année, Mois, Heure, Taux, Transaction FROM CRENEAU_HORAIRE WHERE CRENEAU_HORAIRE!Heure Like ' " & Me.ValeurCréneau & " ' "
    End IF
    j'espère que cela marchera (autrement la honte pour moi)

  5. #5
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Tu n'as pas bien repris mon exemple, essai comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Sql = "SELECT NuméroAuto, Année, Mois, Heure, Taux, Transaction FROM CRENEAU_HORAIRE WHERE CRENEAU_HORAIRE!Heure ="  & Me.ValeurCréneau
    Examine bien la position du dernier guillemet ". Tel que tu l'avais placé, tu n'assignais à la variable Sql qu'une simple chaine de caractère incluant la valeur littérale " & Me.ValeurCréneau" alors que "& Me.ValeurCréneau" est bien entendu du code.

  6. #6
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Merci ça marche,
    la solution de FRED.G est la bonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Me.Créneau And Not Me.Année And Not Me.Mois Then
        Sql = "SELECT NuméroAuto, Année, Mois, Heure, Taux, Transaction FROM CRENEAU_HORAIRE WHERE CRENEAU_HORAIRE!Heure = " & Me.ValeurCréneau
    End If
    Merci de m'avoir aidée...

  7. #7
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Désolé mais ça ne marche que s'il y a une seule liste de valeur,
    j'ai essayé de faire avec deux mais aucun résultat ne s'affiche..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.Créneau And Not Me.Année And Me.Mois Then
        Sql = "SELECT NuméroAuto, Année, Mois, Heure, Taux, Transaction FROM CRENEAU_HORAIRE WHERE CRENEAU_HORAIRE!Mois = " & Me.ValeurMois & " AND CRENEAU_HORAIRE!Heure = " & Me.ValeurCréneau
    End If
    Je suis désolée de vous embeter encore, mais comment cela se fait-il que je ne puisse faire qu'avec une seule liste de choix ?

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

Discussions similaires

  1. [SQL] recherche multicritère SQL et checkbox
    Par berti dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/03/2008, 17h34
  2. [SQL] Recherche dans table le nombre d'enregistrement en horizontale
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/04/2007, 07h18
  3. [SQL] Recherche multicritères
    Par denn dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/05/2006, 17h42
  4. [SQL] recherche multicritère
    Par nal dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 11/04/2006, 11h26
  5. [SQL] Recherche multicritères genération de la requête
    Par primus dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/02/2006, 16h34

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