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. Select Case tab.valeur
    Case "toto"
    variable="titi"
    case "toto1"
    variable = "titi1"...
    1. 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
    2. 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?
    3. 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
        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. 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.