Select Where plusieurs paramètres

andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020 - Modifié le 13 févr. 2018 à 17:18
andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020 - 13 févr. 2018 à 23:50
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

Profil bloqué
13 févr. 2018 à 22:04
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 ?

--
0
andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020 1
13 févr. 2018 à 22:12
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 févr. 2018 à 23:44
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
0
andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020 1
13 févr. 2018 à 23:50
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 ?
0
Rejoignez-nous