IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Equivalent du 'DECODE' d'Oracle dans Access ?


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Equivalent du 'DECODE' d'Oracle dans Access ?
    Bon mon problème est pas super compliqué ...
    J'ai des valeurs numériques dans une table qui sont en fait des codes pour lesquels il existe des libellés ... et je veux retrouver mes libellés en selectionnant mes codes. Seul souci, je ne veux pas créer de table 'code - libellé' qui simplifierait grandement la tache.
    Dans Oracle, il existe une fonction qui fait ca plutot bien, elle marche comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DECODE(table.champ,code1,libelle1,code2,libelle2,...,valeur_par_defaut) FROM table ...
    Et cette requete ne retournera que les libellés, ou la valeur par defaut si un code n'a pas de libellé defini.
    Et donc voici la question qui se pose : existe-t-il une fonction equivalente a DECODE dans Access, ou estce que vous auriez une idée de la requete qui pourrait faire ca (combinaison de IIF ?) ... merki d'avance

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Le plus proche serait la fonction Switch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  Switch(table.champ=code1,libelle1,table.champ=code2,libelle2,..., True, valeur_par_defaut) FROM table ...
    Selon les paramètres régionaux il faut remplacer la virgule par un point-virgule.
    Switch = PremVrai en français.

    Bon courage.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merki bien LedZepp Jme suis un peu acharner avec le switch, puis j'en suis venu à essayer avec des IIF et finalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IIF(table.champ=code1,lib1,IIF(table.champ=code2,lib2,IIF(.....val_par_defaut))))  FROM table ...
    Ca marche impeccable tu m'as posé sur la bonne piste merci bien

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu pourrais écrire une fonction en fonction en vba ce serait infiniment plus
    lisible

    function decode(x as variant) as string
    select case x
    case 1
    decode="lib1"
    case 2
    decode="lib2"
    case ele
    decode="erreur de code"
    end select
    end unction
    Elle est pas belle la vie ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ouep random j'y avais plus ou moins pensé, mais de la a utiliser des fonctions VB dans mes requetes SQL je vais m'en tenir aux IIF, y'aura un gros commentaire pour rendre ca plus lisible ... merki en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Equivalent de la fonction STXT d'Excel dans Access
    Par gme69 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/05/2007, 08h51
  2. Réponses: 2
    Dernier message: 10/05/2007, 12h55
  3. Equivalent de l'Analyze d'oracle pour Access ?
    Par tomy29 dans le forum Access
    Réponses: 8
    Dernier message: 29/11/2006, 12h04
  4. equivalent function decode oracle pour mysql 4.1
    Par axel-erator dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/05/2006, 13h44
  5. equivalent de goto dans access
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 12/05/2006, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo