zolt4n
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005
-
28 juil. 2005 à 10:52
zolt4n
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005
-
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.
cs_toods
Messages postés26Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention29 juillet 2005 28 juil. 2005 à 11:07
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
cs_lucio57
Messages postés146Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention25 juillet 20072 28 juil. 2005 à 11:14
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
zolt4n
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005 28 juil. 2005 à 11:38
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juil. 2005 à 12:31
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"
cs_lucio57
Messages postés146Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention25 juillet 20072 28 juil. 2005 à 11:08
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.
cs_lucio57
Messages postés146Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention25 juillet 20072 28 juil. 2005 à 12:13
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
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005 28 juil. 2005 à 14:45
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
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005 28 juil. 2005 à 14:54
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
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 28 juil. 2005 à 15:27
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
zolt4n
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005 29 juil. 2005 à 08:42
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
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 juil. 2005 à 11:43
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" .....
++
zolt4n
Messages postés35Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 4 août 2005 29 juil. 2005 à 21:15
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