Bonjour.
À quel niveau ou étape ?Citation:
je suis perdu
A+
Version imprimable
Bonjour.
À quel niveau ou étape ?Citation:
je suis perdu
A+
défini l'horaire hebdomadaire de la personne (de chaque semaine mais dans quelle table ?)
créé la liste des jours de l'année dans la table tblCalendrier. (voir image.....quoi faire ???)
MerciPièce jointe 323406
tblHoraire 'C'est lhoraire standard de la personne
ClefHoraire
ClefPesronne
NoJour (1 à 7)
CodeTypeJour
DateDebut 'Permet d'avoir un historique des horaires de la personne
DateFin 'Permet d'avoir un historique des horaires de la personne
Exécuter la procédure CreerAnnee() avec la bonne année.Citation:
créé la liste des jours de l'année dans la table tblCalendrier. (voir image.....quoi faire ???)
Pour le moment en test mais après, il faudra faire un formulaire de saisie de paramètre.
Code:
1
2
3 private sub test_CreerAnnee calll CreerAnnee(2017) end sub
Code:
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 public sub CreerAnnee(prmAnnee) dim db as dao.database:set db=currentdb dim sql as string '=== Supprime l'annee sql="delete [tblCalendrier].* from [tblCalendrier]" call db.execute(sql, dbFailOnError) '--- Supprime l'annee '=== Rempli le calendrier dim dateDebut as date: datedebut=dateserial(prmAnnee, 1,1) dim dateFin as date: dateFin=detserial(prmAnnee, 12,31) dim rCalendrier as dao.recordset: set rCalendrier=db.openrecordset("tblCalendrier", dbOpenDynaset) dim dateJour as date:for dateJour=dateDebut to datefin rCalendrier.addnew rCalendrier![DateJour]=datejour rCalendrier.update next jour call rCalendrier.close: set rCalendrier=nothing '--- Rempli le calendrier db.close: set db=nothing end sub
est ce que c'est bien comme ça :
Pièce jointe 323799
quoi mettre dans ClefHoraire.
Bonjour.
- ClefHoraire devrait être complété. C'est un numéro auto.
- Les dates de début et de fin indiquent la période dans laquelle l'horaire est valide.
Donc ce devrait être quelque chose comme :
- Début : Date d'embauche
- Fin : 9999-12-31 sauf si tu sais que la personne va terminer par exemple le 2017-07-15.
A+
Bonjour.
Pour la date de fin, cela a surtout de l'importance si tu as une personne qui change d'horaire.
Par exemple
- de 2017-01-01 à 2017-07-31, 5 jours/semaine.
- de 2017-08-01 à 9999-12-31, 4 jours/semaine. (nouvel horaire jusqu'à plus ample informé, sa mort ou sa retraite.
Et tu ne définis qu'une seule semaine par horaire. Cette semaine modèle va être utilisée pour toutes les semaines de toutes les années entre début et fin.
A+
1 ére question : est ce que mon fichier est bon ??
2 éme question: dois-je exécuter le module module 1 ou le module 5 ?
Pièce jointe 324974Pièce jointe 324975
Bonjour.
Absolument et pendant ces 7 mois la personne a eu un horaire de 5 j de travail par semaine et 2 jours de congé.Citation:
dans cette exemple[*]de 2017-01-01 à 2017-07-31, 5 jours/semaine. il y a sept(7) mois.
Il est donc inutile de répéter pendant ces 7 mois toujours la même information.
Est-ce que tous le monde change d'horaire au 31 décembre de l'année ?Citation:
est ce que je peux mettre l'année complète c'est à dire 01-01/2017 à 31-12/2017 pour tous les employés.
Pour le code.
Tu peux mettre plusieurs procédures dans un même module donc tu peux mettre la procédure de test dans le même module que la procédure de calcul. Ça facilite la vie en général.
La procédure à exécuter pour valider que la proécdure de calcul est correct est Test_CreerAnnee()
Et je ne sais pas si c'est moi qui ai fait une faute de frappe mais il faut mettre Call et non Calll.
A+
Exécuter la procédure CreerAnnee() avec la bonne année.
Pour le moment en test mais après, il faudra faire un formulaire de saisie de paramètre.
Bonjour,
pour faire ledit formulaire de saisie j'utilise quelle Table pour que je puisse exécuter le code vba ?
merci.
Bonjour.
Dans l'image de la table horaire que tu as postée, tu as autant de ligne que de jours dans le mois.
La confusion vient de NoJour qui est le numéro du jour ans la semaine (supposée commencer le lundi) pas le numéro du jour dans le mois.
Comme je l'ai dit la table horaire contient simplement une semaine ordinaire dans la période de travaille (début - fin).
Donc si ta personne a 2 horaires différents Il va falloir ne saisir que 2 x 7 jours pour chacune des périodes où son horaire s'applique.
Si elle n'a qu'un seul horaire, alors, il ne faut entrer que les 7 jours qui correspondent à cet horaire hebdomadaire.
À mon avis ce serait plus clair si on nommait la table horaire : tblhoraireHebdo au lieu de simplement tblHoraire.
Pour le formulaire de création d'année, il te suffit d'un formulaire vierge relié à aucune table.
- Tu y ajoutes une zone de texte pour y saisir l'année ([Annee]).
- Tu y ajoutes un bouton pour déclencher la création.
- Dans la procédure événementielle associée à l'événement "sur click" du bouton tu mets :
Code:
1
2 Call creerAnnee(me.Annee) msgbox "Année : " & me.Annee & " crée.", vbinformation
A+
Re-bonjour,
voici le résultat ..
Pièce jointe 325881
Pièce jointe 325885