Requête SQL sur plusieurs champs en même temps

Requête SQL sur plusieurs champs en même temps - SQL/NoSQL - Programmation

Marsh Posté le 04-04-2006 à 16:26:07    

Bonjour
 
Je pense que le titre est assez explicite.
Je travaille sous vb6 et access.
J'aimerais pouvoir effectuer une requete sur plusieurs champs, je m'explique :
 
Pour simplifier :
 
Une table avec 30 champs.
 
Dans mon interface :
30 critères de recherche divisés en 3 zones :
Zone 1 : champ1 à Champ10
Zone 2 : Champ11 à Champ20
Zone 3 : Champ21 à Champ30
 
Là ca se complique :
Plusieurs options de "mixage", c'est à dire:
 
Si mixage Zone 1 activée : (mixage simple)
Si critère de recherche 1 = "toto" je doit rechercher sur tous les champs de la zone1 dans la base la valeur "toto"
 
Si mixage Zone1-Zon2 activée : (mixage interzone)
Si critère de recherche 1 = "toto" je doit rechercher sur tous les champs de la zone1 dans la base la valeur "toto" ainsi que sur les champs de la zone2
 
Si aucun mixage activé :
Si critère de recherche 1 = "toto" je doit rechercher sur le champ1 dans la base la valeur "toto"
 
 
 
Et bien sûr on peut remplir autant de critères possibles, et activer les mixages que l'on veux...
 
genre remplir la textbox2 = "toto" et activer le mixage interzone zone1-Zone3 et en même temps remplir la textbox23 = "tata" et activer mixage zone2  :pt1cable:  
 
 
Disons que j'avais déja gérer le mixage simple en listant tous les champs un par un des zones, mais ma requête sql depasse vite les 255 caractères (oui je suis limité à 255 caractères apparement) donc je suis obligé de créer plusieurs recordset etc..
 
 
Mais là avec le mixage interzone c'est pas la peine..
 
Donc pour conclure j'aimerais trouver soit une fonction SQL du style : "Find ("toto", Champ1...Champ10)"  
(si je décide de la créer moi même dans la base de données, est ce que ca sera rapide?)
 
Ou le gerer de la meilleure manière possible dans mon code avec un algo optimisé et rapide.
 
Merci d'avance pour vos réponses  :jap:


Message édité par Profil supprimé le 04-04-2006 à 16:32:57
Reply

Marsh Posté le 04-04-2006 à 16:26:07   

Reply

Marsh Posté le 04-04-2006 à 16:47:29    

Petite préçision :
 
Il existe aussi une option "In" :
 
Si elle est activé alors la valeur du champ doit commencer par le critère de recherche : left(Champ,Len("toto" )) = "toto"
Sinon alors la valeur du champ doit être strictement égale : champ = "toto"
 
Et plein d'autre fonctions du genre  :D


Message édité par Profil supprimé le 04-04-2006 à 16:47:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed