Select Where plusieurs paramètres

andyajram 50 Messages postés vendredi 24 mai 2013Date d'inscription 13 février 2018 Dernière intervention - 13 févr. 2018 à 17:12 - Dernière réponse : andyajram 50 Messages postés vendredi 24 mai 2013Date d'inscription 13 février 2018 Dernière intervention
- 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 ??
Afficher la suite 

4 réponses

Répondre au sujet
CecilCordheley 36 Messages postés mercredi 8 novembre 2006Date d'inscription 13 février 2018 Dernière intervention - 13 févr. 2018 à 22:04
0
Utile
1
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 ?

--
andyajram 50 Messages postés vendredi 24 mai 2013Date d'inscription 13 février 2018 Dernière intervention - 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
Commenter la réponse de CecilCordheley
jordane45 19956 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 février 2018 Dernière intervention - 13 févr. 2018 à 23:44
0
Utile
1
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
andyajram 50 Messages postés vendredi 24 mai 2013Date d'inscription 13 février 2018 Dernière intervention - 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 ?
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.