IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Requêtes Access: L'opérateur IN ou comment utiliser une liste d'éléments dans vos requêtes
Par Fabrice Constans (Loufab)

Le , par loufab

0PARTAGES

4  0 
Bonjour,

Dans ce tutoriel, vous apprendrez à utiliser l'opérateur SQL In() avec une zone de liste pour effectuer vos filtres à l'ouverture de formulaires/états.

Vos commentaires sont les bienvenues.

http://loufab.developpez.com/tutorie...s/operateur-in

Cordialement,

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 15/08/2011 à 22:14
re moi,
Code : Sélectionner tout
1
2
3
4
5
Personne
id	Nom	DateNaissance	DateDeces
1	riri	05/09/1923	04/12/1968
2	fifi	04/12/1968	23/02/2010
3	loulou	15/03/1912
Quelles sont les personnes dont la date de naissance ou la date de décès est 04/12/1968 ?

Code : Sélectionner tout
1
2
SELECT * FROM Personne
WHERE #12/4/1968# In (DateNaissance,DateDeces);
Résultat : id=1 et id=2

Bizarre comme utilisation du IN, hein ?
3  0 
Avatar de f-leb
Responsable Arduino et Systèmes Embarqués https://www.developpez.com
Le 07/08/2011 à 11:43
bonjour loufab,

c'est toujours un plaisir de découvrir tes tutoriels et également très utile pour les membres.

...Il évite de longs et complexes algorithmes de construction de clause WHERE...

on peut l'employer également dans la clause HAVING:
Code sql : Sélectionner tout
1
2
3
4
SELECT ... 
FROM... 
GROUP BY... 
HAVING Count(*) IN (1,3,9,15)

Je vais essayer de trouver un exemple concret
2  0 
Avatar de philben
Membre chevronné https://www.developpez.com
Le 09/08/2011 à 22:28
bonjour,

Dans le chapitre <Variante avec des dates>, il est nécessaire, je pense, que les dates soient converties au format m/d/yy avant de les placer dans la clause Where.

Bon tut,

a+

philippe
2  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 08/09/2011 à 11:01
Salut.

Ne peut-on pas convertir les dates en long pour éviter les méprises?

Sinon, excellent tuto
2  0 
Avatar de loufab
Rédacteur/Modérateur https://www.developpez.com
Le 07/08/2011 à 16:44
Tout à fait Where et Having n'ont comme différence que le type de requete (avec regroupement ou pas)
1  0 
Avatar de User
Rédacteur/Modérateur https://www.developpez.com
Le 07/08/2011 à 18:09
Excellente idée maintes fois évoquée sur le forum
0  0 
Avatar de loufab
Rédacteur/Modérateur https://www.developpez.com
Le 10/08/2011 à 9:40
En effet !
J'ai intégré vos remarques. Merci à vous 2.
0  0 
Avatar de loufab
Rédacteur/Modérateur https://www.developpez.com
Le 16/08/2011 à 12:03
Absolument ! ça mérite un ajout dans le tuto.
0  0 
Avatar de
https://www.developpez.com
Le 14/09/2011 à 9:25
Je pense qu'il faudrait aussi mettre un passage par rapport aux injection sql : les clause IN sont pas facilement convertible en requêtes paramétrées, du coup on fait souvent de la concaténation de chaine => risque d'injection SQL. (sur les exemples de l’article dans un environnement ou l'utilisateur peut modifier les valeur envoyées par le formulaire,web par ex, il est possible de faire une injection SQL)
0  0 
Avatar de guidav
Membre éprouvé https://www.developpez.com
Le 03/10/2011 à 14:59
Autre petit ajout nécessaire à mon avis : on ne peut pas faire
Code : Sélectionner tout
in (element1, element2, ..., Null), il faut faire in (element1, ...) or is null
D'autre part, il n'est pas possible de mettre de comparaison LIKE :
Code : Sélectionner tout
in ("toto*", "titi*")
ne renverra pas toto1 ou titi2.
0  0