Bloc case sous access

Fermé
mimine - 5 mars 2008 à 12:58
blux Messages postés 24894 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 28 mars 2023 - 5 mars 2008 à 15:02
Bonjour,

je souhaiterais connaitre la syntaxe du bloc "CASE" sous access.
Je voudrais faire cette opération à l'intérieur d'un SELECT:

SELECT
CASE Tab.valeur = 'toto' THEN 'titi'
CASE Tab.valeur = 'toto1' THEN 'titi1'
END

le pb c'est que cette syntaxe ne fonctionne pas. pouvez-vous m'aider?

6 réponses

Frappe Misere Messages postés 2677 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 10 août 2011 567
5 mars 2008 à 13:11
Select Case tab.valeur
Case "toto"
variable="titi"
case "toto1"
variable = "titi1"...
1
blux Messages postés 24894 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 28 mars 2023 3 315
5 mars 2008 à 13:13
Salut,

la syntaxe est très bien expliquée dans l'aide ACCESS...

En gros :
SELECT CASE Tab.valeur
CASE 'toto'
    ....
CASE 'toto1'
    ....
END SELECT
--

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Salut,
Merci pour votre aide mais ça ne marche toujours pas.

Bon je précise que je souhaite faire une requète SQL je veux faire un INSERT Dans une table B grace à une table A.
Avec vos suggestion j'ai fait comme ça

INSERT INTO A ( Id1, Id2, Libelle )
SELECT B.Id1, B.Id2,
CASE B.Lib
CASE 'toto1'
A.Libelle = 'titi1'
CASE 'toto2'
A.Libelle ='titi2'
ELSE CASE
A.Libelle = 'toto'
END
FROM A

Merci pour votre aide
0
blux Messages postés 24894 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 28 mars 2023 3 315
5 mars 2008 à 13:59
Tu mélanges du SQL et du code VBA, ça ne marchera jamais.

Le SQL se bâtit comme une chaine de caractères VBA et ensuite on l'exécute via un ordre VBA type 'docmd.runsql toto'.
0
Sous Sybase on peut utiliser les blocs CASE dans les procedures SQL, ce n'est pas le cas sous access?
0
Frappe Misere Messages postés 2677 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 10 août 2011 567
5 mars 2008 à 14:37
access reste une version "light" de sql.
certaines ne sont pas possibles, ce que tu veux faire par exemple.
tu vas devoir décomposer.
0

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

Posez votre question
blux Messages postés 24894 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 28 mars 2023 3 315
5 mars 2008 à 14:41
Ben voui, ACCESS propose le SQL 'standard' (norme ANSI 89 ou ANSI 92 selon la version) et le VBA, mais pas de mixage des deux...

Ce que propose Sybase n'est pas non plus du SQL standard, mais du SQL procédural, comme l'est PL/SQL pour ORACLE.
0
bon en gros il faut que je fasse une fonction (dans un module par exemple) qui utilise le "select case" et que j'appelle dans ma requète SQL?
Bon j'essaye et je vous tiens au courant. merci pour votre aide ;)
0
blux Messages postés 24894 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 28 mars 2023 3 315
5 mars 2008 à 15:02
On peut aussi faire n requêtes avec chacune un paramétrage différent.
0