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

VBA Access Discussion :

Boucle incrémentation sur intervalle de dates


Sujet :

VBA Access

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 134
    Par défaut Boucle incrémentation sur intervalle de dates
    Bonjour à tous,

    J'aurai besoin de votre aide concernant une boucle d'incrementation pour rajouter une valeur de 5 minutes en 5 minutes entre deux intervalles horaires , pour cela j'ai bidouillé ce code qui , soit fait planter access 2010 , soit ne donne qu'un seul résultat :

    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
    17
    18
    19
    20
    21
    22
    Public Function PlageHoraire()
     
        Dim DebutPlageHoraire As Date
        Dim FinPlageHoraire As Date
        Dim CalculDepart As Date
        Dim CalculFin As Date
     
        DebutPlageHoraire = #8:00:00 AM#
        FinPlageHoraire = #6:00:00 PM#
     
        CalculDepart = DateAdd("n", 5, DebutPlageHoraire)
     
        While CalculFin < FinPlageHoraire
     
        CalculFin = DateAdd("n", 5, CalculDepart) + CalculFin
     
      Wend
     
      Debug.Print CalculFin
     
     
    End Function
    Merci d'avance pour vos suggestions

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Salut,

    Cela serait plutôt :
    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
    17
    18
    19
    20
    21
    22
    23
    Public Function PlageHoraire()
     
        Dim DebutPlageHoraire As Date
        Dim FinPlageHoraire As Date
        Dim CalculDepart As Date
        Dim CalculFin As Date
     
        DebutPlageHoraire = #8:00:00 AM#
        FinPlageHoraire = #6:00:00 PM#
     
        CalculDepart = DateAdd("n", 5, DebutPlageHoraire)
        CalculFin = DebutPlageHoraire
     
        While CalculFin < FinPlageHoraire
     
            CalculFin = DateAdd("n", 5, CalculFin)
     
        Wend
     
      Debug.Print CalculFin
     
     
    End Function
    @+.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 134
    Par défaut
    Merci pour ta réponse, malheureusement la boucle ne s'effectue pas, une seule itération s'opère ...

    Je ne sais pas si DateAdd est vraiment indiqué pour additionner les heures dans ce cas ...

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    C'est bizarre cela fonctionne correctement, peux-tu mettre :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    Public Function PlageHoraire()
     
        Dim DebutPlageHoraire As Date
        Dim FinPlageHoraire As Date
        Dim CalculDepart As Date
        Dim CalculFin As Date
     
        DebutPlageHoraire = #8:00:00 AM#
        FinPlageHoraire = #6:00:00 PM#
     
        CalculDepart = DateAdd("n", 5, DebutPlageHoraire)
        CalculFin = DebutPlageHoraire
     
        While CalculFin < FinPlageHoraire
     
            CalculFin = DateAdd("n", 5, CalculFin)
            msgbox format(CalculFin, "HH:MM")
     
        Wend
     
      Debug.Print CalculFin
     
     
    End Function
    Et voir si cela ne t'affiche pas tous les heures que tu veux !

    @+.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 134
    Par défaut
    Alors maintenant ça marche, j'ai remplacé msgbox par un debug.print, mais il manque les valeurs de départ et de fin c.à.d qu'actuellement :

    La liste commence par debut + 1 (qui est correct mais devrait inclure l'heure de debut) et fin +1 (qui est incorrect et devrait s'arrêter à l'heure de fin)

    La finalité étant de créer une table de plages horaires les tops doivent être inclus...

    Je continue à creuser mais je ne sais pas comment représenter cet intervalle avant la boucle et qui puisse alimenter la liste...

    Merci pour ton aide

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Cela devrait aller :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    Public Function PlageHoraire()
     
        Dim DebutPlageHoraire As Date
        Dim FinPlageHoraire As Date
        Dim CalculDepart As Date
        Dim CalculFin As Date
     
        DebutPlageHoraire = #8:00:00 AM#
        FinPlageHoraire = #6:00:00 PM#
     
        CalculDepart = DateAdd("n", 5, DebutPlageHoraire)
        CalculFin = DateAdd("n", -5, DebutPlageHoraire)
     
        While CalculFin < DateAdd("n", -1, FinPlageHoraire)
     
            CalculFin = DateAdd("n", 5, CalculFin)
            MsgBox Format(CalculFin, "HH:MM")
     
        Wend
     
     
     
     
    End Function
    @+.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 134
    Par défaut
    Absolument merveilleux !

    Je vais essayer de comprendre cette logique

    En tous les cas bravo pour ta réactivité et pour ta solution, je t'en remercie.

    Bonne journée !

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

Discussions similaires

  1. [AC-2010] Calculs sur intervalles de dates
    Par archonte dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/11/2013, 18h39
  2. MDX: Cumul sur intervalle de date
    Par faulk dans le forum SSAS
    Réponses: 5
    Dernier message: 19/01/2012, 17h10
  3. boucle incrémentée par date
    Par AurelienNF dans le forum Langage
    Réponses: 10
    Dernier message: 17/08/2010, 23h12
  4. [CR 10] Itération sur un intervalle de dates dont on n'a que les bornes
    Par cramto dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 19/06/2009, 10h45
  5. ouvrir form sur intervalle de date
    Par krassi dans le forum IHM
    Réponses: 4
    Dernier message: 22/02/2007, 16h19

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