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 :

créer une fonction avec "si" imbriqués


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut créer une fonction avec "si" imbriqués
    Bonjour,

    je débute dans Access, je maitrise beaucoup mieux excel mais aujourd'hui la quantité d'information que j'ai à traiter ne me permet plus de le faire sur Excel.

    J'ai la fonction suivante sur excel
    =SI(NBCAR(D2)=4;SI(E2=4;80%;SI(OU(E2=3;E2=2);20%;"erreur"));0)
    que je voudrais transposer sur Access. J'ai essayé en SQL mais je ne sais pas comment faire un test sur le nombre de caracters d'un champs.
    j'ai essayé : len([commercial1])=4;...
    j'ai une erreur au niveau du 1er point virgule.

    Merci pour toute aide.

  2. #2
    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
    en access c'est comme sur excel
    sauf que si s'écrit vraifaux() ou iif()

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci pour la réponse mais j'ai un problème de syntaxe.

    comment dois je écrire la formule sous Access ?

    IIF (len([commercial1]=4);......;....

    j'ai essayé ceci mais ça ne marche pas.

  4. #4
    Membre du Club Avatar de Badboy62cfp
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 58
    Points
    58
    Par défaut
    Faut utiliser la fonstion logique If...Then...Else....

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 81
    Points : 88
    Points
    88
    Par défaut
    Où encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case Len([Commercial1]
         Case 4
              'Traitement si longueur = 4
         Case >4
              'Traitement si longueur > 4
         Case 1,2,3
              'Traitement si longueur = 1 ou 2 ou 3
         Case Else
              'Traitement si autre que 1, 2, 3, 4 ou supérieur à 4
    End Select

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Citation Envoyé par JUMJJUMJ
    merci pour la réponse mais j'ai un problème de syntaxe.

    comment dois je écrire la formule sous Access ?

    IIF (len([commercial1]=4);......;....

    j'ai essayé ceci mais ça ne marche pas.
    Normal,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IIF( Len([Commercial])=4;
    Le test logique est fait entre len([comercial1]) d'un part et 4 d'autre part.
    Si tu mets tout entre parenthèse, il n'y a plus de test logique, donc pas de valeur vraie ou fausse.
    On peut les imbrique les uns dans les autres mais plus on en met, plus c'est lourd, surtout lorsque l'on rencontre un problème.

    Les autres solutions que l'on t'a proposées sont plus performantes.

Discussions similaires

  1. Créer une fonction avec nom de DB en argument ?
    Par ctobini dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 03/12/2007, 23h29
  2. Créer une fonction avec une variable
    Par Ricou13 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/01/2007, 23h51
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36

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