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ête]recherche avec combinaisons de 3 choix pour X champs


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut [Requête]recherche avec combinaisons de 3 choix pour X champs
    Bonjour à tous,

    j'ai une table où sont stockées les expériences des salariés. j'ai une vingtaine d'expérience différentes avec pour chaque trois valeurs possibles (choisies par un formulaire avec case à cocher).
    j'aimerais par un formulaire identique à celui de saisie mais vierge pouvoir rechercher un profil en choisissant une ou plusieurs experiences et qu'il me sorte les salariés correspondants à ma sélection.
    j'ai pensé créer une table temporaire ou serait stockée ma sélection puis comparer par requete les deux tables mais cette 2è étape me pose problème.

    Si quelqu'un de plus confirrmé que moi avait une autre idée ou pouvait m'aider dans mon essai, ce serait sympa.

    Merci d'avance,

    Marco

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Si je comprends bien, dans la table des employés, il y a, entre autres, 20 champs d'expérience, chacun pouvant recvoir une valeur entre 1 et 3.
    Si c'est bien cela, pour la recherche aucune table supplémentaire n'est nécessaire.
    Le formulaire de recherche doit être indépendant, comporter 20 contrôles permettant de saisir pour chaque domaine d'expérience la valeur souhaitée de 1 à 3 et la requête sur la table des employés est du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM tblEmployés WHERE EXP1  LIKE " & Nz(Me.Crit1,"*") & " AND EXP2 LIKE " ....
    Bon courage,

    PGZ

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    j'y ai bien pensé mais mon probleme est que la recherche ne se fait pas forcement (et même jamais) sur tous les champs. par exemple je recherche les salariés qui ont la valeur 1 pour les champs exp_01 et exp_02 et la valeur 2 pour les champs exp_03 et exp_04.
    donc le probleme est que pour les autres champs, le choix est nul et il me met erreur de syntaxe lorsque * est retourné.
    y a t-il un moyen simple de palier à ce problème sans rentrer dans du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not isnull(Exp_01) then...
    Merci pour votre aide

    Marco

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    le probleme est que pour les autres champs, le choix est nul
    justement, avec le code proposé les critères null ne posent pas de pb...

    PGZ

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    j'ai du faire une erreur alors car il me met un message d'erreur "erreur de syntaxe" lorsque Exp_03 = * par exemple.
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL = "SELECT Salarie.matr, Salarie.Nom, Salarie.Prénom, Salarie.departement_, Salarie.Ville_salarie, Salarie_experience.exp_01 as Experience 1, Salarie_experience.exp_02 as Experience 2, Salarie_experience.exp_03 as Experience 3, Salarie_experience.exp_04 as Experience 4, Salarie_experience.commentaire"
    SQL = SQL & " FROM (Salarie_experience LEFT JOIN Salarie ON Salarie_experience.matr = Salarie.matr) WHERE Exp_01  LIKE " & Nz(Forms(F).exp_01, "*") & " AND Exp_02  LIKE " & Nz(Forms(F).exp_02, "*") & " AND Exp_03  LIKE " & Nz(Forms(F).exp_03, "*") & " AND Exp_04  LIKE " & Nz(Forms(F).exp_04, "*") & ""
    merci encore

    Marco

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    En fait, je viens d'indentifier le problème. cela ne vient pas du fait qu'un critère du formulaire de recherche soit nul , c'est le fait qu'une expérience n'est pas de valeur. je m'explique : si sur les 20 expériences, une n'a pas été cochée, il n'y a pas de valeur dans ma table salarie_experience et donc le salarié en question ne ressort pas dans le resultat de la requete.
    cela fonctionne en utilisant Nz(Exp_01;"") a la place de Exp_01 dans le nom du champ.

    Merci encore pour le coup de main

    Marco

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

Discussions similaires

  1. [MySQL] Recuperer les resultas d'une requête MySQL et acceder a les valeur pour chaque champ
    Par bourbita.thameur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/03/2009, 16h48
  2. Requête de recherche avec mot clé
    Par timhost dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/09/2007, 09h19
  3. Réponses: 1
    Dernier message: 03/12/2006, 16h13
  4. Calendrier avec differents choix pour un jour
    Par Seth77 dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 17/10/2006, 11h44
  5. Réponses: 7
    Dernier message: 11/10/2006, 13h35

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