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

Modélisation Discussion :

Calculer des périodes à partir de dates entrées [AC-2010]


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Calculer des périodes à partir de dates entrées
    Bonjour
    J'essaie de simplifier au plus mon projet et de le rendre plus facile à l'utilisation future...
    Du coup, je suis reparti sur d'autres bases concernant le calcul de Période/Semaine...
    la table t_periode servira à renseigner les différentes dates : rentrée scolaire, date des vacances (avec habituellement début = vendredi soir et fin = lundi matin)...

    la table t_jourt pour les jours travaillés...
    J'aimerais ici que la colonne calcul_PS indique pour le jour rentré le code P#S#...
    Désolé ! En fait il faudrait calculer le résultat dans 2 champs : champs "Periode" et champs "Semaine"

    il faudrait qu'il y ait un calcul : de date à date,des périodes et des semaines pour chaque période : avec RAZ à chaque fois par ex. P1S1 P1 S2 ... PS8 puis, P2S1.... P2S7 puis P3S1 à P3S9 etc.
    Ex d'affichage dans 2 champs distinct : P1 ; S1 à P1 ; S8 (s'il y a 8 semaines dans la période) puis remise à zéro du compteur et ensuite P2 ; S1 etc...


    J'espère être assez clair ?

    Merci d'avance
    calcul_ps.zip

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Je ne suis pas sûr que tu sois au bon endroit mais je vais quand même te donner un bout de solution que j'ai trouvé pour toi grâce à cette fonction :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Public Function PeriodeSemaine(pDate As Variant) As String
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Dim i As Integer
        Dim bytPeriode As Byte
        Dim intSemaine As Integer
        Dim boolVacances As Boolean
        Dim varDate As Date
     
        If IsNull(pDate) Then
            PeriodeSemaine = ""
            Exit Function
        End If
     
        ' Requête où l'on récupère l'année scolaire comprenant la date saisie
        strSQL = "SELECT [Date rentree], " & _
                        "[Debut toussaint], " & _
                        "[Fin toussaint], " & _
                        "[Debut Noël], " & _
                        "[Fin Noël], " & _
                        "[Debut hiver], " & _
                        "[Fin hiver], " & _
                        "[Debut printemps], " & _
                        "[Fin printemps], " & _
                        "[Debut ete] " & _
                 "FROM t_periode " & _
                 "WHERE [Date rentree]<=" & CDbl(pDate) & " AND [Debut ete]>=" & CDbl(pDate) & ";"
     
        Set rst = CurrentDb.OpenRecordset(strSQL)
        bytPeriode = 1
        boolVacances = True
     
        If Not rst.EOF Then
            ' La requête nous retourne une ligne
            For i = 1 To rst.Fields.Count
                If i Mod 2 = 0 Then
                    'On est dans des petites vacances
                Else
                    ' On est dans une période
                    If rst(i - 1) <= pDate And pDate <= rst(i) Then
                        ' La date saisie est incluse dans la période
                        intSemaine = 1
                        varDate = rst(i - 1)
                        boolVacances = False
                        ' Pour chaque  semaine
                        Do While varDate <= rst(i)
                            If varDate <= pDate And pDate < varDate + 7 Then
                                ' La date saisie se trouve dans la semaine
                                Exit Do
                            Else
                                ' La date saisie ne se trouve pas dans la semaine
                            End If
                            intSemaine = intSemaine + 1
                            varDate = varDate + 7
                        Loop
                        Exit For
                    Else
                        ' La date saisie n'est pas incluse dans la période
                    End If
                    bytPeriode = bytPeriode + 1
                End If
            Next i
     
            If Not boolVacances Then
                ' La date saisie correspond à une période
                PeriodeSemaine = "P" & CStr(bytPeriode) & "S" & CStr(intSemaine)
            Else
                ' La date saisie ne correspond pas à une période
                PeriodeSemaine = "La date saisie se trouve dans une période de petites vacances"
            End If
        Else
            ' La requête ne retourne rien
            PeriodeSemaine = "La date saisie se trouve dans une période non enregistrée ou pendant les grandes vacances"
        End If
        Set rst = Nothing
    End Function
    Fichiers attachés Fichiers attachés
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Je ne suis pas sûr que tu sois au bon endroit mais je vais quand même te donner un bout de solution que j'ai trouvé pour toi grâce à cette fonction :
    Désolé en effet d'avoir posté ma demande ici.
    Mais en tout cas, tu y as répondu comme je le souhaitais.

    Merci à toi

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

Discussions similaires

  1. Calcul jours consécutifs à partir de dates..
    Par ilissnmiden92 dans le forum Excel
    Réponses: 8
    Dernier message: 05/11/2021, 17h31
  2. Calcul des coordonnées d'une bissectrice entre 2 droites
    Par scoutiste dans le forum Mathématiques
    Réponses: 7
    Dernier message: 28/02/2014, 22h08
  3. Réponses: 2
    Dernier message: 11/09/2011, 12h12
  4. Calculer des statistiques à partir d’un fichier texte.
    Par louay02 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/04/2011, 15h48
  5. Réponses: 5
    Dernier message: 26/11/2008, 20h05

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