{Access} Requete parametree avec la clause where i

Nabil -  
 dvphamid -
Bonjour,
voila, je souhaite creer une requete parametree sous access qui permet d'envoyer la liste des elements dont les Id sont fournies sous forme d'une liste de valeurs, genre :
SELECT * FROM MaTable WHERE Identifiant IN (1 , 5 , 12, 54)
ce que je souhaite faire c'est quelque chose du genre
SELECT * FROM MaTable WHERE Identifiant IN (mon_parametre)
le seul moyen que je connais pour envoyer une liste d'identifiants dans un seul parametre c'est sous forme d'une chaine de caracteres (mon_parametre = '1 , 5 , 12, 54') et c'est la ou il y a le probleme. En effet, Access attend une liste d'entiers et non pas une chaine de caracteres.

si vous avez des idees je suis preneur.
Merci par avance.
A voir également:

5 réponses

dvphamid
 
y a deux méthodes soit comme je té dis de passer té parammétres en entier soit de programmer une requette avec un seul parametre qui s'execute en boucle for c'est facille je pense
1
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,
Tu peux définir plus d'un paramètre et ceux-ci peuvent être des entiers, exemple de code
PARAMETERS Param1 Short, Param2 Short, Param3 Short, Param4 Short;
SELECT *
FROM Matable
WHERE Identifiant in (Param1 , Param2 , Param3 , Param4)

A plus
0
Nabil
 
Bonjour,
Je vous remercie dans un premier temps pour votre aide.
J'ai oublié de signaler que le nombre de paramètres peut varier selon les choix coches par l'utilisateur et ce nombre dépend du contenu de la base...

Merci quand même.
0
dvphamid
 
si le pbm est chaine de caractere tu px utilisé la fonction cint("Param") et voila c'est fait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabil
 
Bonjour,

En fait, il s’agit d'une liste d'identifiants séparés par des virgules (mon_parametre = '1 , 5 , 12, 54').
Un exemple de cas serait par exemple de donner la possibilité à un utilisateur de messagerie de supprimer par mis les messages reçus, ceux qui sont indésirables (1, 5, 12 et 54 serait donc les identifiants des messages à supprimer, mais on ne peut pas connaitre leur nombre à l'avance)
Une première solution - non envisageable pour moi, puisque c’est une requête stockée que je cherche à utiliser - serait d'écrire la requête sous sa forme naturelle à travers le langage de programmation client.

Merci quand même.
0