OVH Cloud OVH Cloud

condition dans une requete

6 réponses
Avatar
lhjlr
Bonjour

est-il possible de faire une requete sous Access comme sous SQL Server, du
type:

Case
when monchamps = 1 then toto
when monchamps = 2 then tintin
...

merci de votre aide

6 réponses

Avatar
Raymond [mvp]
Bonjour.

tu peux utiliser la condition IIf (Vraifaux) et les imbriquer.
tu peux aussi faire appel à une fonction public pour traiter des cas
particuliers.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chhg10$ur5$
Bonjour

est-il possible de faire une requete sous Access comme sous SQL Server, du
type:

Case
when monchamps = 1 then toto
when monchamps = 2 then tintin
...

merci de votre aide




Avatar
lhjlr
oui mais ce que je veux c'est faire une requete du style

marequete = "INSERT INTO matable (colonne1,colonne2,colonne3)
SELECT colonne1 CASE test1 = choix THEN 1
CASE test2 = choix THEN 2 END, colonne2,colonne3
WHERE mesconditions;"

tout ceci étant une requete que je constitue pour ensuite l'exécuter avec la
commande CurrentDb.Execute marequete

je ne vois pas trop comment lui mettre ce test (IIf(vraifaux)) dans ma
requete. Pourrais tu me donner un exemple. Merci.

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

tu peux utiliser la condition IIf (Vraifaux) et les imbriquer.
tu peux aussi faire appel à une fonction public pour traiter des cas
particuliers.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chhg10$ur5$
Bonjour

est-il possible de faire une requete sous Access comme sous SQL Server,
du


type:

Case
when monchamps = 1 then toto
when monchamps = 2 then tintin
...

merci de votre aide








Avatar
lhjlr
je fais bien quelque chose de ce style mais j'ai une erreur "Objet requis"

marequete = "INSERT INTO matable (colonne1,colonne2,colonne3)
SELECT colonne1 = " +
IIf(test1 = choix, 1, IIf(test2 = choix,2, IIf(test3 = choix,3,-1)))
+ ", colonne2,colonne3
WHERE mesconditions;"


test1, test2, test3 et choix étant des champs surlesquels il y a une
jointure


"lhjlr" a écrit dans le message de
news:chhl0k$1ou$
oui mais ce que je veux c'est faire une requete du style

marequete = "INSERT INTO matable (colonne1,colonne2,colonne3)
SELECT colonne1 > CASE test1 = choix THEN 1
CASE test2 = choix THEN 2 END, colonne2,colonne3
WHERE mesconditions;"

tout ceci étant une requete que je constitue pour ensuite l'exécuter avec
la

commande CurrentDb.Execute marequete

je ne vois pas trop comment lui mettre ce test (IIf(vraifaux)) dans ma
requete. Pourrais tu me donner un exemple. Merci.

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

tu peux utiliser la condition IIf (Vraifaux) et les imbriquer.
tu peux aussi faire appel à une fonction public pour traiter des cas
particuliers.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chhg10$ur5$
Bonjour

est-il possible de faire une requete sous Access comme sous SQL
Server,



du
type:

Case
when monchamps = 1 then toto
when monchamps = 2 then tintin
...

merci de votre aide












Avatar
Raymond [mvp]
regarde ce genre de requête:
INSERT INTO table2 ( col1, col2, col3 )
SELECT IIf([choix]=[test1],"1",IIf([choix]=[test2],"2","3")) AS Expr1,
table1.col2, table1.col3
FROM table1;


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chhmkr$2on$
je fais bien quelque chose de ce style mais j'ai une erreur "Objet requis"

marequete = "INSERT INTO matable (colonne1,colonne2,colonne3)
SELECT colonne1 = " +
IIf(test1 = choix, 1, IIf(test2 = choix,2, IIf(test3 = choix,3,-1)))
+ ", colonne2,colonne3
WHERE mesconditions;"


test1, test2, test3 et choix étant des champs surlesquels il y a une
jointure



Avatar
lhjlr
Merci c'est ce que j'ai fais.
Cela fonctionne, mais il me demande de lui passer des parametres,
correspondant au select calculé par les IIF
Je lui mets n'importe quoi et j'ai le résultat voulu, par contre comment
puisse faire pour lui passer ces paramêtre dans la requête.

"Raymond [mvp]" a écrit dans le message de
news:
regarde ce genre de requête:
INSERT INTO table2 ( col1, col2, col3 )
SELECT IIf([choix]=[test1],"1",IIf([choix]=[test2],"2","3")) AS Expr1,
table1.col2, table1.col3
FROM table1;


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chhmkr$2on$
je fais bien quelque chose de ce style mais j'ai une erreur "Objet
requis"



marequete = "INSERT INTO matable (colonne1,colonne2,colonne3)
SELECT colonne1 = " +
IIf(test1 = choix, 1, IIf(test2 = choix,2, IIf(test3 choix,3,-1)))
+ ", colonne2,colonne3
WHERE mesconditions;"


test1, test2, test3 et choix étant des champs surlesquels il y a une
jointure







Avatar
Raymond [mvp]
pour passer les paramètres par vba, voir la page:
http://access.vba.free.fr/execution_standard.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lhjlr" a écrit dans le message de
news:chjo74$us2$
Merci c'est ce que j'ai fais.
Cela fonctionne, mais il me demande de lui passer des parametres,
correspondant au select calculé par les IIF
Je lui mets n'importe quoi et j'ai le résultat voulu, par contre comment
puisse faire pour lui passer ces paramêtre dans la requête.