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 :

Trouver la date du prochain lundi sauf si jour même [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut Trouver la date du prochain lundi sauf si jour même
    Bonjour,
    j'ai besoin de sortir un rapport chaque lundi apmidi
    aujourd'hui je renseigne la date manuellement.
    Je souhaiterai que mon report me trouve la date du lundi de la semaine prochaine si je le prépare dans la semaine un autre jour ou le jour même si je le prépare le lundi matin

    je ne vois pas comme procéder si il faut du code, une requette, une macro, etc...

    Merci de votre aide,

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Voici une fonction qui devrait faire l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function ProchainLundi() As Date
      Dim i As Integer
      For i = 1 To 7
        If Format(Date + i, "dddd") = "lundi" Then
          ProchainLundi = Date + i
        End If
      Next i
    End Function

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    merci à toi.
    l'ai copié dans un module
    par contre, je ne vois pas comment je l'affecte ensuite à un champ dans une requete ou table ?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Je ne sais pas trop non plus comment tu organises ton travail.

    Essaie d'expliquer le contexte dans lequel tu veux connaître la date du prochain lundi.
    Est-ce quand tu ouvres un formulaire ou la BdD.

    Tu disais que tu introduisais cette date à la main, explique ce contexte.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    il s'agit d'une date de réunion affichée dans une page d'entête d'etat

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    l'ai copié dans un module
    OK

    Comme ceci alors :




    P.-S. Telle que, cette fonction te donnera 11/8/14 si tu édites ton état le lundi 4/8/14. Ai-je bien compris ta demande ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    Hello,
    ah d'accord,
    j'ignorai que l'on pouvait appeler une procédure VBA directement comme ceci...
    le meeting a lieu chaque lundi après midi,
    j'ai maxi jusqu'au midi du lundi du jour même pour le préparer

    Exemple, si je le prépare en avance, aujourd'hui (jeudi), il doit me sortir le lundi prochain 04/08/14
    par contre, si je le prépare le lundi matin 04/08, il doit me garder la date du jour

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Dans ce cas, voici le code de ton module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function ProchainLundi() As Date
      Dim i As Integer
      If OnEstLundiMatin = True Then ProchainLundi = Date
      Exit Function
      For i = 1 To 7
        If Format(Date + i, "dddd") = "lundi" Then
          ProchainLundi = Date + i
        End If
      Next i
    End Function
     
    Public Function OnEstLundiMatin() As Boolean
     If Format(Date, "dddd") = "lundi" And Time < #12:00:00 PM# Then OnEstLundiMatin = True
    End Function

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    merci à toi...
    j'ai recopié ton nouveau code
    mais éxecuté en mode pas à pas, il semble boucler jusqu'à la ligne 4 "Exit Function"
    comme si, si on est pas Mardi il ne va pas chercher les autres jours par la boucle "For"

    à moins que j'ai mal recopié...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    enfin je veux dire "Lundi"...
    je m'embrouille dans les jours... desolé

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Ooops ! Désolé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Public Function ProchainLundi() As Date
      Dim i As Integer
      If OnEstLundiMatin = True Then
          ProchainLundi = Date
          Exit Function
      End If
      For i = 1 To 7
        If Format(Date + i, "dddd") = "lundi" Then
          ProchainLundi = Date + i
        End If
      Next i
    End Function
     
    Public Function OnEstLundiMatin() As Boolean
     If Format(Date, "dddd") = "lundi" And Time < #12:00:00 PM# Then OnEstLundiMatin = True
    End Function

    Mes excuses pour cette distraction.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Points : 23
    Points
    23
    Par défaut
    no pb, tu es tout excusé...
    Génial, ça marche correctement...

    Mille mercis à toi ClaudeLELOUP pour ton aide
    A bientôt

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/08/2009, 00h32
  2. VBA-E trouver la date du lundi
    Par porc-bouc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/04/2008, 14h09
  3. Réponses: 3
    Dernier message: 28/08/2007, 10h52
  4. Trouver la date d'il y a 7 jours
    Par julie75 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/07/2007, 10h26
  5. trouver une date à partir d'un nombre de jours
    Par charlene44 dans le forum Delphi
    Réponses: 4
    Dernier message: 21/08/2006, 15h27

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