Opérateur Logique [Résolu]

tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 19 mai 2008 à 17:40 - Dernière réponse : tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention
- 25 mai 2008 à 19:27
Bonjour à tous,

J'ai une question qui peut paraître simple comme ça
mais je ne trouve pas la réponse...

J'aimerais avec un like avoir tous les n° d'un champ à l'exception d'un

exemple :
401, 402, 403, 405, 406, 407, 408, 409  (404 exclu!)

donc ce qu'on pourrait avoir en faisant  :
SELECT * from Table WHERE N° like 40[0-3] or N° like 40[5-9]

Mais j'aimerai faire cela avec 1 seul LIKE
Je ne vois pas comment l'écrire.
Est-ce possible?
Je dois le faire en une fois pour des raisons de programmation, sinon ça me ferait modifier bcp plus de codes que prévu.

Merci de votre aide.
TBBUIM
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 19 mai 2008 à 18:09
3
Merci
Forcément vu sous cet angle .....

On en revient donc à l'instruction Like.

Je crois bien que le pattern dans ton cas s'écrirais de la sorte :

SELECT * from Table WHERE N° like '40[^4]%'

ça prend tous le n° commencent par 40...xxxxxxxx sauf 404xxxxxxxxx

A vérifier !

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 25 mai 2008 à 17:10
3
Merci
Ah, pas loin !!!

Normalement ça devrait etre LIKE '40[^47]%'

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 19 mai 2008 à 17:47
0
Merci
Et pourquoi dans ce cas là, ne pas dire directement

SELECT * from Table WHERE N° != 404

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 19 mai 2008 à 17:52
0
Merci
lol oui merci du conseil, mais c'est plus compliqué que ça...
en fait, je fais un like parce que les n° sont 4062316813 ou 403fezfze12315
ou n'importe. l'important c les 3 chiffrs du début et la plage, je veux pas tout prendre mais uniquement quelque chose de précis, donc ta réponse n'est pas valable dans mon cas.

TBBUIM
Commenter la réponse de tbbuim1
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 20 mai 2008 à 09:42
0
Merci
Merci
TBBUIM
Commenter la réponse de tbbuim1
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 25 mai 2008 à 16:23
0
Merci
Yaurai-t'il un moyen d'exclur 4 et 7 de la sélection?
un truc du genre : 40[^4;7]
TBBUIM
Commenter la réponse de tbbuim1
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 25 mai 2008 à 19:11
0
Merci
J'ai mis 40[^4,7] et ça marche (SQL Server)
En fait [^4-7] c'est de 4 à 7
Et       [^4,7] c'est 4 et 7
EN REVANCHE J'ai un gros probleme :s
Il semble que cela ne marche pas sur des filters!
En effet, lorsque je fais un recordset avec comme source
sql = "select * from table where n° like '40[^4]%'" ça marche...
MAISsi je fais sql "select * from table"> rs.open sql, db_conn,1,3
et que je fais
param = "40[^4]" (mon type n° est en string)
rs.filter = "n° like '" & param & "'%'"
ça ne retourne aucun résultat
alors qu'un param = "401" retourne un résultat

J'ai essayé avec comme recordset 3,3 ou autres, rien n'y fait

TBBUIM
Commenter la réponse de tbbuim1
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 25 mai 2008 à 19:27
0
Merci
J'ai fait une faute de frappe le filter est de la forme
rs.filter = "n° like '" & param & "%' "
TBBUIM
Commenter la réponse de tbbuim1

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.