Select Where plusieurs paramètres

Signaler
Messages postés
155
Date d'inscription
vendredi 24 mai 2013
Statut
Membre
Dernière intervention
8 avril 2020
-
Messages postés
155
Date d'inscription
vendredi 24 mai 2013
Statut
Membre
Dernière intervention
8 avril 2020
-
Bonjour, j'ai cette requête pour extraire des données
"Select ID as Num_Ordre,Date as Date_Création,Nom,Prenom AS Prénom,Fonction,Societe AS Société,
Objet AS Objet_Déplacement,Banque,Point_Cap,Description,Region AS Région,Date_Arr As Date_Arrivée,
Date_Ret AS Date_Retour
from Fiche_Mission
where
Date_Arr like '" & TextBox1.Text & "' or Banque like '" & TextBox3.Text & "' or Objet like '" & TextBox4.Text & "'
or Point_Cap like '" & TextBox5.Text & "' or Region like '" & TextBox6.Text & "' or Nom like '%" & TextBox2.Text & "%' "

, ensuite je cherche ce que je veux à travers un textbox , les conditions étaient bonne jusqu'a ce que j'ai ajouté
or Nom like  '%" & TextBox2.Text & "%' 
alors là aucune recherche ne marche a part la recherche par Nom ce que j'ai ajouté a la fin (le but de cette dernière condition c'est que je puisse chercher le nom par juste une lettre ou deux ) , est-ce-que quelqu'un connait comment faire pour garder la recherche par Nom et en même temps que les autres conditions marche aussi ??

2 réponses

Messages postés
43
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
29 décembre 2020
2
Petite remarque : tu devrais ajouter des noms plus explicites à tes champs textes.

Si je comprends ta requête tu cherche soit une fiche mission avec soit la date d'arrivée, soit par la banque soit par l'Objet soit par le point cap soit par région soit par le nom.
Alors qu'arrive t-il si un utilisateur saisi à la fois une date d'arrivée et un nom ?

--
Messages postés
155
Date d'inscription
vendredi 24 mai 2013
Statut
Membre
Dernière intervention
8 avril 2020

Salut, au début j'avais juste deux critères de recherche , la date et le Nom et ça marché bien , après on m'a demandé d'ajouter les autres critères et que la condition sur le Nom soit juste en entrant la première lettre du Nom on doit avoir les noms qui commencent ou qui contienne cette lettre du coup j'ai ajouté le %% pour le nom , et depuis aucun critère de recherche ne marche a part le Nom , pour répondre a ta question qu'est-ce-qui se passe si on entre deux critères a la fois , ça donne un résultat aléatoire ou bien ça applique l'un des critères en déclinant l'autre , maintenant j'ai fais une autre solution au lieu d'un seul bouton recherche , j'ai remplacé chaque label de Textbox par un LinkLabel du coup chaque Link labe je lui ai donné sa requête avec le Where , je sais que c'est pas très joli ni pratique , mais c'est ce que j'ai pu faire jusqu'a maintenant , en attendant d'autres solutions
Messages postés
32403
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mai 2021
347
Bonjour,

Première chose à savoir : Sur quel SGBD travailles tu ? Sql Server ? Mysql ? Access ? autre ?

Ensuite .. pourquoi ne "construits" tu pas ta requête en fonction des champs remplis ou non?

Par exemple un truc du genre :
condition  = ""
requete = "SELECT ID as Num_Ordre,Date as Date_Création,Nom,Prenom AS Prénom,Fonction,Societe AS Société,    Objet AS  Objet_Déplacement,Banque,Point_Cap,Description,Region AS Région,Date_Arr As Date_Arrivée,
              Date_Ret AS Date_Retour 
              FROM Fiche_Mission 
              WHERE   " 

if TextBox1.Text <>"" Then  
  requete = requete & " Date_Arr ='" & TextBox1.Text & "' "
  condition = " OR "
End If
if TextBox3.Text <>"" Then  
  requete = requete & condition  & " Banque ='" & TextBox3.Text & "' "  
   condition = " OR "
End If
if TextBox4.Text <>"" Then  
  requete = requete & condition & " Objet ='" & TextBox4.Text & "' "
   condition = " OR "
End If
if TextBox5.Text <>"" Then  
   requete = requete & condition & " Point_Cap  ='" & TextBox5.Text & "' "
   condition = " OR "
End If
if TextBox6.Text <>"" Then  
  requete = requete & condition & " Region ='" & TextBox6.Text & "'' "
  condition = " OR "
End If
if TextBox2.Text <>"" Then  
  requete = requete & condition & " Nom like  '%" & TextBox2.Text & "%'  " 
End If



NB : Pour poster ton code sur le forum, merci d'utiliser les balises de code
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Messages postés
155
Date d'inscription
vendredi 24 mai 2013
Statut
Membre
Dernière intervention
8 avril 2020

je travaille avec SQL server , je ne savais pas que ça existé des conditions sur les requêtes comme ca ! est-ce-que ca marche bien pour mon cas ?