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

Requêtes et SQL. Discussion :

Filtrer une requête en excluant un jour. [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut Filtrer une requête en excluant un jour.
    Bonjour, j'ai besoin sur une requête d'exclure les dimanches.

    j'ai mis:
    Nom : Capture1.JPG
Affichages : 94
Taille : 16,2 Ko

    pas d'erreur, mais les dimanches sont toujours là... donc pas bon

    le code de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Planning.DateJour, T_Planning.DateJour, T_Planning.NumPlanning, T_Planning.Heure1MA, T_Planning.Heure2MA, T_Planning.Heure1AM, T_Planning.Heure2AM, T_Planning.HeureR1MA, T_Planning.HeureR2MA, T_Planning.HeureR1AM, T_Planning.HeureR2AM, T_Planning.PeriodeJour, T_Planning.NbHeuresSup, T_Planning.IdEmploye, T_Planning.Memo, T_Planning.Fonction, T_Planning.FonctionR, T_Planning.UserNameMaj, T_Planning.DateHeureMaj, T_Planning.Nbre_CP, T_Planning.Date_JF_Recup
    FROM T_Planning, T_DateCP
    WHERE (((T_Planning.DateJour)>=[T_DateCP]![DateDebutCP] And (T_Planning.DateJour)<=[T_DateCP]![DateFinCP]) AND (Not (Format(Date(),"ddd")="dim")));
    Merci d'avance pour votre intérét

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Bonjour

    Date() te donne la date du jour, celle à laquelle tu exécutes ton code.

    La solution est probablement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (Format([T_Planning].[DateJour], "ddd")<>"dim")));
    Ceci dit je te recommande ne pas tester "dim" qui peut changer avec la langue du système.
    Utilise plutôt Weekday([T_Planning].[DateJour], 2)<>7 qui en est indépendant.

    A+

  3. #3
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Merci de ton interêt.

    Il a fallu rajouter un point derriere le dim car c'est ce qu'affiche access... mais j'ai suivi ton consiel et suis passé à la version internationale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((Weekday([T_Planning].[DateJour]))<>1) AND ((T_Planning.DateJour)>=[T_DateCP]![DateDebutCP] And (T_Planning.DateJour)<=[T_DateCP]![DateFinCP]));
    par contre, le dimanche sous access c'est 1... va comprendre "charles"

    Merci encore pour ton aide, je met en résolu

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    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 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour,
    par contre, le dimanche sous access c'est 1... va comprendre "charles"
    non, cela dépend du second paramètre de la fonction qui est vbDayOfWeek. Pour cela, on utilise les constantes de FirstDayOfWeek: 1= vbSunday, 2=vbMonday, 3=vbTuesday etc.
    En SQL on ne peut pas les utiliser, c'est pour cela qu'on passe par leur équivalent numérique.

    Dans le code de marot_r:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Weekday([T_Planning].[DateJour], 2)<>7
    le chiffre 2 désigne le premier jour de la semaine désiré, c'est à dire le lundi (vbMonday) : cela veut dire que, puisque le lundi est désigné comme premier jour de la semaine, dimanche sera le 7ème de la semaine considérée.
    Si ce paramètre n'est pas spécifié, c'est la valeur par défaut dimanche (vbSunday) qui est pris en compte comme dans ton code:
    Weekday([T_Planning].[DateJour]))<>1 qu'on aurait pu écrire ainsi: Weekday([T_Planning].[DateJour],1))<>1
    comme dimanche est le premier jour de la semaine, tu compares à 1, mais dans les deux cas, cela exclut bien les dimanches.

  5. #5
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Merci pour cette précision.

    Donc si j'ai bien compris "par défaut" le premier jour de la semaine est dimanche, mais on peut définir celui que l'on veut en le stipulant...

    Trop fort

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Bonjour.

    le dimanche sous Access c'est 1... va comprendre "charles"
    Pour les américains, la semaine commence le dimanche d'où le 1.

    A+

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

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