Bonjour,
J'ai une question serait il possible de changer le format des champs nombre recu et nobre utilise dans les tables afin de gerer les demi journée en changant le format en reel simple au lieu de entier !?
Merci
C'est sans doute possible. Il serait préférable de joindre votre application avec quelques lignes de données anonymisées pour pouvoir analyser les choses correctement. Il faudra sans doute supposer qu'il ne soit pas admis d'utiliser en 1 jour 2 demi-jours de congé accordés.
Cordialement.
Bonjour,
Ce ne sera pas tout à fait simple vu qu'il faut considérer que certains prendront le demi-jour le matin (donc retour le même jour l'après-midi) et d'autres prendront ce demi-jour l'après-midi (et donc retour le lendemain). Il faut au moins ajouter 2 champs et modifier les méthodes de calcul.
Cordialement.
Les jours non travaillés étant vendredi et samedi, jamais une personne ne prendra de congé à partir du jeudi midi ? Idem, jamais une personne ne demandera à ne reprendre le travail que le dimanche après-midi?
Cordialement.
_ jamais une personne ne prendra de congé à partir du jeudi midi? Rien ne l'interdit pour 0,5 jrs
oui jamais une personne ne demandera à ne reprendre le travail que le dimanche après-midi (bien sur on ne reprend pas un week-end)
Il y a une chose à ajouter si un agent a seulement 0.5 jours et si il le consomme jeudi normalement ca ne pose pas problème et si il consomme 0.5 à compter de midi le retour sera dimanche.
Le deuxième cas il a dans son solde 2,5 jours et veux consommer comme dans les exemples précédents là il perdra les deux jours et reprendra le dimanche.
Cordialement.
Bonjour,
je n'arrive pas à avoir le filtre par date comme pour les congés dans une petite application.
j'ai utilisé le code vba ci-joint application
date départ = DU
date retour = AU
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Date1_AfterUpdate() Filtrer End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Date2_AfterUpdate() Filtrer End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub cbuDate_AfterUpdate() If "" & Me.cbuDate = "" Then Me.cbuDate = "DU" '--- empèche de laisser vide Filtrer End Sub
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 Private Sub Filtrer() Dim sFiltre As String, sDate As String sFiltre = "" '=== dates sDate = Me.cbuDate If IsDate(Me.Date1) Then sFiltre = sFiltre & " And [" & sDate & "] >= #" & (Me.Date1) & "#" End If If IsDate(Me.Date2) Then sFiltre = sFiltre & " And [" & sDate & "] < #" & (Me.Date2 + 1) & "#" End If '=== filtrage Debug.Print "sFiltre: "; sFiltre If sFiltre = "" Then Me.Filter = sFiltre Me.FilterOn = False Else Me.Filter = Mid(sFiltre, 5) Me.FilterOn = True End If End Sub
cordialement.
j'ai touvé la solution il manquer
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Function DInt(d As Date) As String
Bonjour,
Une façon de faire pour calculer les jours de reprise du travail en partant du fait que les congés peuvent être des demi-jours et qu'il est possible de partir en congé l'après-midi (pm). Dans ce cas il est plus simple de calculer directement la date de reprise, laquelle peut se produire soit le matin (am) soit le midi (pm).
Cordialement.
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 Public Function DateReprise(NbJours As Variant, DateDébut As Variant, bAM As Boolean, bCal As Boolean) As Variant If NbJours = 0 Or Not (IsDate(DateDébut)) Then DateReprise = Null Else DateDébut = DateDébut + IIf(bAM, 0, 0.5) '--- ajout demi-jour si départ après midi (pm) 'Debug.Print "NbJours:"; NbJours, "DateDébut: "; DateDébut, "bAM: "; bAM, "bCal: "; bCal If bCal = True Then '--- calcul en jours calendriers DateReprise = DateAdd("h", NbJours * 24, DateDébut) '--- 1 jour = 24 heures Else '--- calcul en jours ouvrés Dim i As Long, tmpDate As Date, nbDJ As Long tmpDate = DateDébut nbDJ = NbJours * 2 '--- nb de demi-jours i = 1 Do While i <= nbDJ tmpDate = DateAdd("h", 12, tmpDate) '--- ajoute demi-jour (12 heures) If Weekday(tmpDate, vbSunday) < 6 And DCount("*", "tJF", "JFDate=" & CDbl(Int(tmpDate))) = 0 Then '--- n'est pas un weekend ni un jour férié => compte pour 1 demi-jour utilisé '--- vbSunday => Dimanche = 1er jour travaillé, weekend = vendredi + samedi '--- Int(tmpDate) nécessaire pour ramener à la date du jour sans indication d'heure i = i + 1 End If Loop DateReprise = tmpDate End If End If End Function
Bonjour,
merci pour les efforts que vous faites ca fonctionne bien
j'ai entamé un certain nombre d'enregistrement dans l'ancienne version et pour les enregistrés ce n'est pas évident dans cette dernière version, le filtre ne fonctionne plus à cause du changement !!!
j'ai remarqué que les modules qui contienne ceci n'existe plus:
cordialement.
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 Public Function DateFin(NbJours As Variant, DateDébut As Variant, bCal As Boolean) As Variant If NbJours = 0 Or Not (IsDate(DateDébut)) Then DateFin = Null Else If bCal = True Then '--- calcul en jours calendriers 'DateFin = DateAdd("d", NbJours, DateDébut) - 1 DateFin = DateAdd("d", NbJours, DateDébut) - 1 Else '--- calcul en jours ouvrés Dim i As Long, tmpDate As Date tmpDate = DateDébut i = 1 Do While i < NbJours tmpDate = DateAdd("d", 1, tmpDate) If Weekday(tmpDate, vbSunday) < 6 And DCount("*", "tJF", "JFDate=" & CDbl(tmpDate)) = 0 Then '--- n'est pas un weekend ni un jour férié => compte pour 1 jour utilisé '--- vbSunday => Dimanche = 1er jour travaillé, weekend = vendredi + samedi i = i + 1 End If Loop DateFin = tmpDate End If End If End Function Public Function DateReprise(DateFinCongé As Variant) As Variant On Error GoTo Fin If IsNull(DateFinCongé) Then DateReprise = Null Else Dim i As Long, tmpDate As Date tmpDate = CDate(DateFinCongé) i = 0 Do tmpDate = tmpDate + 1 If Weekday(tmpDate, vbSunday) < 6 And DCount("*", "tJF", "JFDate=" & CDbl(tmpDate)) = 0 Then '--- n'est pas un weekend ni un jour férié => compte pour 1 jour utilisé '--- vbSunday => Dimanche = 1er jour travaillé, weekend = vendredi + samedi i = i + 1 End If Loop While i < 1 DateReprise = tmpDate End If Exit Function Fin: DateReprise = Null End Function
Effectivement, cette cette nouvelle version il n'y a plus de calcul de DateFin(), il reste seulement le calcul de DateReprise (et plus de date Fin dans le sous-formulaire congés utilisés). Les tables n'ont pas changé à part l'ajout du champ CuAM dans la table tCu.
Le plus simple pour passer de l'ancienne version à la nouvelle est de procéder ainsi:
- faire une copie de l'ancienne,
- y ajouter le champ CuAM dans la tabel tCu (valeur par défaut: Non)
- supprimer le formulaire CuListe
- copier/coller le formulaire CuListe de la nouvelle version
- vider le module1
- copier coller le code du module1 de la nouvelle version.
mais le mieux serait de passer par une base de données fractionnée, comme par exemple expliqué ici.
Cordialement.
bonjour,
j'ai suivi toute les étape:
- jouté le champ CuAM dans la tabel tCu
- supprimé le formulaire CuListe
-copier/coller le formulaire CuListe de la nouvelle version
-vider le module1
-copier coller le code du module1 de la nouvelle version.
c'est réussi sauf que toutes les requêtes ne fonctionne ainsi que CngAgtListe ...etc
cordialement.
Effectivement, ce qui semble n'être qu'un détail peut entrainer de nombreuses modifications par effet d'enchainement. En attaché, une version qui corrige les synthèses. A vérifier.
Cordialement.
Bonjour,
Le champ Note était marqué "verrouillé: Oui". Pour le filtre, c'est ok.
Cordialement.
Bonjour,
Si votre application est fractionnée, le compactage automatique ne concerne que la partie frontale. La dorsale n'est pas compactée. Pour le faire, il faut l'ouvrir directement (et par prudence faire une copie avant de la compacter).
Access Web a été abandonné par MS. Access fonctionne cependant très bien en multiutilisateurs (conçu pour cela), chacun disposant de la frontale, celle-ci se connectant sur la dorsale déposée sur un serveur.
Cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager