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 :

Incrémenter automatiquement un ou plusieurs jours de la semaine (Date)


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Incrémenter automatiquement un ou plusieurs jours de la semaine (Date)
    Bonjour à tous,

    j'ai besoin de vos lumières pour une difficulté sous Access (2010).

    J'ai créé un formulaire sur lequel figure:
    deux cellules permettant d'afficher/sélectionner une période ("DateDebut" et "DateFin")
    sept cases à cocher pour chacun des jours de la semaine
    un sous formulaire continu avec une cellule "DateOuverture"

    Mon problème est que je voudrais pouvoir incrémenter automatiquement les jours d'ouverture de la période choisie en fonction des jours cochés.
    Pour être plus clair, par exemple je choisis la période du 15 avril 2013 au 15 août 2013 et je coche le lundi et le vendredi; je voudrais qu'access renseigne dans le champ voulu (DateOuverture) tous les lundi et tous les vendredi de la période.

    J'ai bien lu la fiche VBA de Maxence HUBICHE sur les "Les Fonctions Date/Heure" et essayé quelques pistes avec Weekday mais sans succès. Si vous pouviez m'aiguiller, svp.

    Merci

    Nicolas

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Ta formulation n'est pas hyper claire.

    Je récapitule ce qu'il me semble comprendre : tu as une table avec des enregistrements qui comportent une DateOuverture et d'autres choses.

    Tu voudrais afficher la liste des enregistrements de cette table compris entre tes deux dates limites ET dont le jour d'ouverture serait le lundi ou vendredi. C'est ça ? c'est autre chose ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut,
    Ce qui n'est pas clair pour moi c'est la fameuse cellule dateOuverture. Est-ce une liste ? Si oui, alors j'y verrai bien à l'intérieur tous les Lundi et Vendredi (en suivant ton exemple) de la période choisie.

    Je le ferais en travaillant sur les semaines: pour chaque semaine depuis la semaine de début jusqu'à celle de fin -> là tu récupère les jours cochés et tu alimente la liste -> next.
    Avec un petit test au début et à la fin histoire d'être toujours dans la bonne période.

    C'est une idée vite pensée, pas le temps de tester, je vais me coucher ...
    A+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci à tous les deux pour vos réponses.
    J'essaie d'éclaircir le problème:

    Je dois créer une BDD pour la gestion des repas livrés dans les établissements dont on s'occupe (écoles, centres de loisirs, crèches, etc.). Je dois donc renseigner pour chaque établissement les jours d'ouverture pour pouvoir y affecter ensuite les commandes de repas, etc. Chaque type d'établissement fonctionne différemment (écoles en général le lundi, mardi, jeudi, vendredi, hors vacances scolaires, les centres de loisirs le mercredi et les vacances scolaires, etc.)

    Les contraintes étant nombreuses (vacances scolaires changeantes d'une année sur l'autre, jours fériés, rythme scolaire qui risque de changer, etc.) je voudrais chaque année pouvoir créer un socle commun des jours d'ouverture à chaque type d'établissement (ex: les écoles).

    Mon idée (sous réserve que vous la validiez) est donc de sélectionner le type d'établissement (ex: écoles), la période voulue (ex: du 01/09/12 au 04/07/13) et les jours de fonctionnement (cases à cocher lundi, mardi, jeudi et vendredi).
    A la suite de quoi, en cliquant sur un bouton, je voudrais qu'Access renseigne automatiquement dans le champ "DateOuverture" les jours de fonctionnement de la période (ex: lundi 03 septembre 2012, mardi 05 septembre 2012, jeudi 07 septembre 2012, etc. jusqu'à jeudi 04 juillet 2013)

    Pas facile d'expliquer clairement, avec un aperçu c'est plus clair ? (cf. ci joint)

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Salut,

    Tu peux t'inspirer de ce code :

    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
    Dim j as long
    Dim dat1 as date,dat2 as date 
    Dim rst as DAO.RecordSet
     
    Set rst = CurrentDb.OpenRecordset("T_Planning", dbOpenDynaset)
     
    dat1=DebutSemaine(Me.DateDebut) ' calcul le 1er jour de la semaine
    dat2=(Me.DateFin)
     
    Do While dat1<date2
     
       For j=1 to 5
     
          if Me("Jour" & j).Value=true then ' si la case à cocher Jour1..5 est cochée
     
                rst.AddNew
                rst!DateOuverture = dat1+j-1
                rst!TypEts = Me!TypEts
                rst.Update
     
          end if
     
       Next j
     
    dat1=dat1+7 ' semaine suivante
     
    Loop
     
     
     
    Function DebutSemaine(ByVal DateSemaine As Date) As Date
    'Prend en argument un jour dans la semaine choisie et renvoie la date du premier jour de cette semaine
     
    Dim i As Integer
    i = Weekday(DateSemaine, vbMonday)
    DebutSemaine = DateAdd("d", -i + 1, DateSemaine)
    End Function
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Bonjour User,
    Désolé pour le délai de réponse, j'étais en déplacement.
    Merci de ton aide, je vais me pencher sur ta proposition et je vous tiendrai au courant.
    Bonne journée,
    Nicolas

Discussions similaires

  1. Incrémentation automatique d'une colonne chaque jour
    Par krolis dans le forum Débuter
    Réponses: 0
    Dernier message: 21/04/2011, 16h48
  2. Fonction Calcul automatique de nombre de jours ouvrable entre deux dates
    Par KiMbOoO dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/04/2011, 09h23
  3. Incrémentation automatique
    Par otravaglini dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 10h20
  4. Imprimer automatiquement fichiers de plusieurs formats
    Par lutin511 dans le forum Windows
    Réponses: 5
    Dernier message: 07/12/2005, 18h38
  5. incrémenter automatiquement un champ d'un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/09/2005, 08h42

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