Requete SQL [Résolu]

zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 28 juil. 2005 à 10:52 - Dernière réponse : zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention
- 29 juil. 2005 à 21:15
Bonjour j'ai un probleme

j'ai une requete avec 4 champs "1" "2" "3" "4" ,4 boolean retourne (0 ou 1)
et un 5em champs pour la valeur totale en binaire donc un truc du genre 1000
ou 1100
j'ai un formulaire avec 4 autres bouton cocher donc boolean aussi et un bouton
qd je clic sur le bouton je retourne la valeur binaire a quatre chiffre du genre si on clique sur 1 et 3 mon formulaire retourne 1010.
je recherche alors ds ma requette si le champs 5 connais 1010.
sa sa va mais jaimerai que ma requet me sorte 1010 mais ausi 1111 ,1110,1011
engros tout les champs ou il y a 1*1* maiis je bloque .

jai aussi testé de metre les 15 comdition sur mes pti bouton de mon formulaire mais sa ne marche pas.
Afficher la suite 

19 réponses

Meilleure réponse
cs_toods 26 Messages postés mercredi 27 juillet 2005Date d'inscription 29 juillet 2005 Dernière intervention - 28 juil. 2005 à 11:07
3
Merci
Salut
Dans une requête SQL, tu peux utiliser le %
Mais il faut utiliser un LIKE
Ex:
Select ---
FROM ---
WHERE bidule LIKE '1%1%'
mais le souci p'tet c'est qu'il te retournera aussi 10000010
il y a un moyen pour dire que le % correspond à 1 caractère, mais je ne sais plus lequel

Plus tu vas moins vite, moins tu vas plus loin

Merci cs_toods 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Meilleure réponse
cs_lucio57 146 Messages postés lundi 10 février 2003Date d'inscription 25 juillet 2007 Dernière intervention - 28 juil. 2005 à 11:14
3
Merci
Toods je pense que ta requête ressortira aussi les valeurs du genre 1001 ou 0110 en fait toutes celle contenant deux 1. Sous SQL serveur tu peux egalement faire
CHAMP5 LIKE '1_1_' en utilisant _ tu indiques le nombre caractères attendus dans la chaîne. Mais comme précédement si ce n'est pas un format caractère qui est utilisé pour ton champ il faudra certainement le caster en nvarchar

Merci cs_lucio57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Meilleure réponse
zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 28 juil. 2005 à 11:38
3
Merci
Merci les gars j'ai trouvé seul , mais doit y avoir plus simple bon deja jai fait mais 15 posibilité le 0000 men fou ^^

apres sa jai fait une colone par cas dans ma recherche sql du genre 0&-[2]&-[3]&0

jai fait ceci pour les 15 cas

apres jai recherché en fonction de mon resultat sous le formulaire la colone specifique donc la c la colone 0110
et donc sa marche !!! car si jai 1111 il me sort qd meme 0110 et si jai 1010 il me sort 0010 il me donne donc que les bon champs merci a tous

Merci zolt4n 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Meilleure réponse
cs_toods 26 Messages postés mercredi 27 juillet 2005Date d'inscription 29 juillet 2005 Dernière intervention - 28 juil. 2005 à 11:38
3
Merci
et effectivement, il faut utiliser le "_"
=> WHERE bidule LIKE '1_1_'

Plus tu vas moins vite, moins tu vas plus loin

Merci cs_toods 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juil. 2005 à 12:31
3
Merci
en effet, de la manière "brutale" effectuée par Zolt4n, c'est fonctionnel, mais je ne préfère pas imaginer le temps que celà prendrait pour remplir le tableau s'il y avait plus de 15 (2^4 -1 ) valeurs binaires.
perso, 8bits (2^8 -1), je ne m'amuserais pas à remplir un tableau de 127 lignes....

mon exemple reprenait les requêtes SQL d'antan...
à savoir que "11*" reprend tous les champs commençant par "11"
et que "11?" reprend tous les champs de 3 caractères, commençant par "11"

LIKE "1?1?" retourne donc
1010
1011
1110
1111

si on passait à 5, 8, ou 200 bits, il n'y aurais qu'une seule ligne à changer, à savoir par rapport à la longueur de "RezFormate" (cf ci-dessus)

la méthode de Lucio57 est correcte également, mais tout de même fastidueuse sur une très grande valeur de "Rez"

PCPT

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 28 juil. 2005 à 10:53
0
Merci
a oui si qqn connais si ds une requette sql on peut metre l'* ou le % sa serait sympas j'ai essayé mais rien a faire
cs_lucio57 146 Messages postés lundi 10 février 2003Date d'inscription 25 juillet 2007 Dernière intervention - 28 juil. 2005 à 11:08
0
Merci
Je ne suis pas sûr d'avoir tout compris mais ça pourrait donner ça

SELECT CHAMP5 FROM TABLE WHERE CHAMP1 = 1 AND CHAMP3=1
ou ça
je sais que ça marche sous SQL Server mais je ne sais pas sous les autres formes de base de donnéesSELECT CHAMP5 FROM TABLE WHERE SUBSTRING(CHAMP5,1,1) '1' AND SUBSTRING(CHAMP5,3,1) '1'
si ton champ 5 est au format nombre il faut peut être le caster SELECT CHAMP5 FROM TABLE WHERE SUBSTRING(CAST(CHAMP5 AS NVARCHAR),1,1) '1' AND SUBSTRING(CAST(CHAMP5 AS NVARCHAR),,3,1) '1'

J'espère que ça va t'aider ! Par contre j'ai pas tout compris ton second poste.

Bon courage
cs_toods 26 Messages postés mercredi 27 juillet 2005Date d'inscription 29 juillet 2005 Dernière intervention - 28 juil. 2005 à 11:18
0
Merci
exact, ca retournera également pour 1001, mais je pense pas 0110 vu que je demande à ce que le 1er caractère soit un 1
désolé

Plus tu vas moins vite, moins tu vas plus loin
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juil. 2005 à 11:37
0
Merci
de mémoire, çà serait plutôt :

'on suppose Rez as string contenant "1010"

dim RezFormate as string
RezFormate = Replace(Rez,"0","?") 'donc contient "1?1?"

(SQL) ".... LIKE '" & RezFormate & "'"

PCPT
cs_lucio57 146 Messages postés lundi 10 février 2003Date d'inscription 25 juillet 2007 Dernière intervention - 28 juil. 2005 à 11:46
0
Merci
Désolé Toods mais je me suis loupé tu as raison il ne renvoie pas 1001 parce qu'il n'y a pas de % avant. Toutes mes confuses !
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juil. 2005 à 11:52
0
Merci
mouarf.....
bien joué Zolt4n, on verra quand tu auras 5 ou 6 "bits" .....
PCPT
cs_lucio57 146 Messages postés lundi 10 février 2003Date d'inscription 25 juillet 2007 Dernière intervention - 28 juil. 2005 à 12:13
0
Merci
la remarque de pcpt est pertinente oarce que d'après ce que je comprends avec ta méthode tu ne peux plus rien changer à ta table tu devrais fonctionner directement sur tes champs bit et laisser tomber le 5ème champ de recap.

Si tu en as besoin tu peut le recréer par une vue en faisant

SELECT (CAST(CHAMP1 AS NVARCHAR) + CAST(CHAMP2 AS NVARCHAR) +CAST(CHAMP3 AS NVARCHAR) + CAST(CHAMP3 AS NVARCHAR)) AS CHAMP5 FROM TABLE

Avec cette méthode tu modifies uniquement ta vue. Ce qui est beaucoup plus pratique.Tu auras juste à faire ta requète en mettant :
SELECT * FROM VUE WHERE et tu lui glisse tes restrictions. Donc programme devient de se fait beaucoup plus modulable.
zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 28 juil. 2005 à 14:45
0
Merci
lol C'est moi Zolt4n a savoir je debute acces sqlet vba depuis la semaine derniere donc j'apprend seul mais vous maidé pas mal et vous savez quoi j'ai la meme manip a faire que tout a lheure mais avec 12 champs qui peuvent allé de 0a 4 donc vite fait 12*12 144 * 5 720 colone bon on vas changer de methode hihi je vais essaye de faire se que vous avez dit on verasbien sy j'y arrive
zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 28 juil. 2005 à 14:54
0
Merci
le probleme c'est que je change de donné sur mon formulaire et je ne voye pas comme faire meme avec le like 4_1_2_%
je c pas si je suis clair c'est le meme cas que tout a lheure
sauf que la j'ai 12 textbox qui vont de 0 a 4 (j'ai une table ou ceci est referencé) et dans mon formulaire je doit cherché qui a 4 au 1er textbox puis 2 au 8em ...
je doit faire tout les cas biensure dans ma requettes etr javoue que je voye pas bien comment je peux faire sauf cas par cas mais je suis pas timbré pour faire sa ^^
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 juil. 2005 à 15:27
0
Merci
je précisé "zolt4n" en répondant à Lucio, et "lucio" en répondant/informant les lecteurs ;)

pour tes 16milliards de colonnes, t'as du bol de t'en apercevoir maintenant ;)
et pour ton explication en général..... bah c'est pas clair. pas assez pour moi en tout cas ;)
en l'attente
PCPT
cs_lucio57 146 Messages postés lundi 10 février 2003Date d'inscription 25 juillet 2007 Dernière intervention - 28 juil. 2005 à 15:40
0
Merci
Pareil pour moi j'ai pas tout compris ton histoire de colonne !
zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 29 juil. 2005 à 08:42
0
Merci
imagine un formulaire avec 12 colones
par colone il y a 4 champs un peu bien tres bien expert
'niveau de connaissance) du genre

-Ecxel
_
|_|
_
|_|
_
|_|
_
|_| avec 4 case comme sa et tu doit en cocher une ,ben lors du'une recherche c'est le meme systemes je cherche qui est expert en excel bon en calcul ...
pour les 12 cas sachant qu'une collone n'est pas obligatoirement cocher
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 juil. 2005 à 11:43
0
Merci
plus t'expliques, moins j'comprend......
pense qu'on est pas trop dans ta tête
là pour moi, çà veux dire que tu recherches un utilisateur MicrosoftExcel qui est mathématicien, et qui .....

nan, je m'égare. çà veut rien dire de plus qu'avant.
mais bon, tu vas sans doute te re-valider toi-même en disant "c'est bon, j'ai trouvé, il suffisait de fermer le projet, sélectionner le dossier, Shift+Suppr / OK, et ne plus y penser" .....
++

PCPT
zolt4n 35 Messages postés mercredi 1 juin 2005Date d'inscription 4 août 2005 Dernière intervention - 29 juil. 2005 à 21:15
0
Merci
t'as compris j'ai reusit avec une requete sql like ?4?.....

merchi pour votre aide et de vus creuzé les menache pour les newb comme
sa ( promis c meme pas ironique )si jai trouvé c grace au 1er messages
mouah je vous aime , bon now je valide mon message ou pas ???



allé non juste javais validé mon message pour que personne dautre ce
plonge sur le probleme en voyant que le problem été resolu sa sert a sa
la validation ^^



mais bon pour le plaisir et pour embété pcpt hihi je v revalidé celui ci

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.