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 :

Requête avec plusieurs IIF Statement renvoie un erreur de syntaxe


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut Requête avec plusieurs IIF Statement renvoie un erreur de syntaxe
    Voici une requête dans laquelle qui comporte un champ (Expr1) avec une clause IIF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_HORAIRES.HO_DATEDEB, T_HORAIRES.HO_NUMSEM, T_HORAIRES.CO_ID, T_HORAIRES.HO_HDEB, T_HORAIRES.HO_HFIN, T_HORAIRES.HO_PAUSE, T_HORAIRES.TY_ID, IIf([T_HORAIRES]![TY_ID]<>'PRE',7,Sum([T_HORAIRES]![HO_HFIN]-[T_HORAIRES]![HO_HDEB]-[T_HORAIRES]![HO_PAUSE])) AS Expr1
    FROM T_HORAIRES
    GROUP BY T_HORAIRES.HO_DATEDEB, T_HORAIRES.HO_NUMSEM, T_HORAIRES.CO_ID, T_HORAIRES.HO_HDEB, T_HORAIRES.HO_HFIN, T_HORAIRES.HO_PAUSE, T_HORAIRES.TY_ID;
    Voici le champ isolé dans le générateur de formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: VraiFaux([T_HORAIRES]![TY_ID]<>'PRE';7;Somme([T_HORAIRES]![HO_HFIN]-[T_HORAIRES]![HO_HDEB]-[T_HORAIRES]![HO_PAUSE]))
    Je souhaiterais maintenant ajouter une 2eme clause IIF à ce champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IIf([T_HORAIRES].[TY_ID]<>'PRE';7
    IIf( [T_HORAIRES].[TY_ID]='RECUP';0;Somme( [T_HORAIRES].[HO_HFIN]- [T_HORAIRES].[HO_PAUSE]- [T_HORAIRES].[HO_HDEB])))

    Mais cela me retourne une erreur de syntaxe :


    Nom : Capture.PNG
Affichages : 167
Taille : 6,5 Ko

    Merci de votre aide et bonne fêtes de fin d'année à tous !

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 159
    Points : 95
    Points
    95
    Par défaut
    Salut,

    Un ";" manque après le 7 de la première condition je pense.

    Essayer avec :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf([T_HORAIRES].[TY_ID]<>'PRE';7; IIf( [T_HORAIRES].[TY_ID]='RECUP';0;Somme( [T_HORAIRES].[HO_HFIN]- [T_HORAIRES].[HO_PAUSE]- [T_HORAIRES].[HO_HDEB])))

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Bonjour et merci pour cette réponse pertinente ! ca marche. Sauf que cela ne renvois pas le bon résultat :


    dans cette capture on voit que RECUP renvoi 7 au lieu de 0


    Nom : Capture.PNG
Affichages : 150
Taille : 1,8 Ko

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 159
    Points : 95
    Points
    95
    Par défaut
    Voir avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf([T_HORAIRES].[TY_ID]<>"PRE";7; IIf( [T_HORAIRES].[TY_ID]="RECUP";0;Somme( [T_HORAIRES].[HO_HFIN]- [T_HORAIRES].[HO_PAUSE]- [T_HORAIRES].[HO_HDEB])))

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    Malheureusement c'est pareil...

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    le problème vient d'une erreur de logique: puisque ="RECUP" est aussi <>"PRE", le résultat sera toujours 7.
    Essaie de tester d'abord la condition ="RECUP":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf([T_HORAIRES].[TY_ID]="RECUP";0;IIf([T_HORAIRES].[TY_ID]<>"PRE" and [T_HORAIRES].[TY_ID]<>"RECUP";7;Somme([T_HORAIRES].[HO_HFIN]- [T_HORAIRES].[HO_PAUSE]- [T_HORAIRES].[HO_HDEB])))
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    bonjour,

    c'est normal car "RECUP" est <> "PRE" => 7, c'est pas plutôt = et non <> ?!?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IIf([T_HORAIRES].[TY_ID]="PRE"...

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Points : 63
    Points
    63
    Par défaut
    C'est parfait ! merci beaucoup à tous

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

Discussions similaires

  1. [WD12] Erreur dans une Requête avec plusieurs INNER JOIN
    Par Raphael1980 dans le forum WinDev
    Réponses: 3
    Dernier message: 12/06/2009, 15h22
  2. [Cours pt-02][Débutants]Requête avec plusieurs sommes
    Par Papy Turbo dans le forum Sondages et Débats
    Réponses: 18
    Dernier message: 29/10/2007, 18h55
  3. Requête avec plusieurs paramètres d'un même champ d'une table
    Par jb.julien dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/08/2007, 09h43
  4. Requête avec plusieurs mots
    Par zeugzeug dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/05/2007, 14h47
  5. une requête avec plusieurs INNER JOIN, cmt faire ?
    Par elhosni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/01/2006, 17h55

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