Bloc case sous access

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?
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. 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 ;)
    1. Modérateur
      On peut aussi faire n requêtes avec chacune un paramétrage différent.
  2. Modérateur
    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.
    1. access reste une version "light" de sql.
      certaines ne sont pas possibles, ce que tu veux faire par exemple.
      tu vas devoir décomposer.
      1. Modérateur
        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'.
        1. Sous Sybase on peut utiliser les blocs CASE dans les procedures SQL, ce n'est pas le cas sous access?
      2. Modérateur
        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"
        1. 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
      3. Select Case tab.valeur
        Case "toto"
        variable="titi"
        case "toto1"
        variable = "titi1"...