Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au début
les minutes sont payées et à partir d'un seuil elles sont récupérées. Le
seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il me
manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas sauté mais
les cumuls sont effectués sans tenir compte du N° qui manque et j'obtiens ce
résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés est
que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au début
les minutes sont payées et à partir d'un seuil elles sont récupérées. Le
seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il me
manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas sauté mais
les cumuls sont effectués sans tenir compte du N° qui manque et j'obtiens ce
résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés est
que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au début
les minutes sont payées et à partir d'un seuil elles sont récupérées. Le
seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il me
manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas sauté mais
les cumuls sont effectués sans tenir compte du N° qui manque et j'obtiens ce
résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés est
que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MAT
Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement (ligne
par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" a écrit dans le message de
news: eQgMQ$Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement (ligne
par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" <Michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message de
news: eQgMQ$jxIHA.1768@TK2MSFTNGP03.phx.gbl...
Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MAT
Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement (ligne
par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" a écrit dans le message de
news: eQgMQ$Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" & MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient sautés
est que ma répartition reprenne correctement son cours ?
D'avance merci
re,
Pour moi, il manque une info comme la date et éventuellement l'heure à
laquelle l'employé à réaliser un certain temps supplémentaires aprés
avec cette info c'est facile de faire la requête qui va calculer le
cumul (voir le SQL ci-dessous) :
SELECT T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE, Sum(T2.TPSPASSE) AS
Cumul
FROM ESSAI AS T1 INNER JOIN ESSAI AS T2
ON (T1.MATRICULE=T2.MATRICULE) And (T1.InfoDateTime>=T2.InfoDateTime)
GROUP BY T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE;Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement
(ligne par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" a écrit dans le message
de news: eQgMQ$Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" &
MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient
sautés est que ma répartition reprenne correctement son cours ?
D'avance merci
re,
Pour moi, il manque une info comme la date et éventuellement l'heure à
laquelle l'employé à réaliser un certain temps supplémentaires aprés
avec cette info c'est facile de faire la requête qui va calculer le
cumul (voir le SQL ci-dessous) :
SELECT T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE, Sum(T2.TPSPASSE) AS
Cumul
FROM ESSAI AS T1 INNER JOIN ESSAI AS T2
ON (T1.MATRICULE=T2.MATRICULE) And (T1.InfoDateTime>=T2.InfoDateTime)
GROUP BY T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE;
Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement
(ligne par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" <Michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message
de news: eQgMQ$jxIHA.1768@TK2MSFTNGP03.phx.gbl...
Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MAT
Bonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" &
MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient
sautés est que ma répartition reprenne correctement son cours ?
D'avance merci
re,
Pour moi, il manque une info comme la date et éventuellement l'heure à
laquelle l'employé à réaliser un certain temps supplémentaires aprés
avec cette info c'est facile de faire la requête qui va calculer le
cumul (voir le SQL ci-dessous) :
SELECT T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE, Sum(T2.TPSPASSE) AS
Cumul
FROM ESSAI AS T1 INNER JOIN ESSAI AS T2
ON (T1.MATRICULE=T2.MATRICULE) And (T1.InfoDateTime>=T2.InfoDateTime)
GROUP BY T1.MATRICULE, T1.InfoDateTime, T1.TPSPASSE;Bonjour,
Je ne sais pas faire par requète.
Avec une requete je sais travailler enregistrement par enregistrement
(ligne par ligne)
La je cumule la valeur de l'enregistrement -1 à une valeur de
l'enregistrement en cours et ainsi de suite.
Les enregistrements sont déjà dans la table qui est mise à jour.
En ce qui concerne la 2ème table c'est la seule façon que j'ai trouvé de
faire les cumuls avec rupture à chaque matricule.
Merci
"Michel_D" a écrit dans le message
de news: eQgMQ$Bonjour,
Hum, quel est la périodicité pour calculer le cumul ?
PS1:Une simple requête suffit pour calculer le cumul, pas besoin de vba.
PS2:Je ne comprends pas à quoi te sert la 2ème table @ESSAI_MATBonjour,
Je suis en train de créer une routine pour le calcul d'heures
supplémentaires.
Dans une table qui s'appelle pour le moment @ESSAI j'ai les champs
suivants
MATRICULE ce qui correspond au N° de matricule de l'employé
TPSPASSE rempli d'un "1" ce qui correspond à 1 minute sup
PAYE cumul des TPSPASSE
La table se présente comme suit :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
512 1 1
512 1 2
1024 1 1
1024 1 2
1024 1 3
2048 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 7
J'ai choisi de créer un enregistrement par min supplémentaire car au
début les minutes sont payées et à partir d'un seuil elles sont
récupérées. Le seuil varie selon la catégorie de l'employé.
Dans une autre table @ESSAI_MAT, je n'ai que les MATRICULE.
Voici le code que j'ai crée :
Set Tb1 = MaBase.OpenRecordset("@ESSAI")
Set Tb2 = MaBase.OpenRecordset("@ESSAI_MAT")
MonMat1 = Tb1!MATRICULE
MonMat2 = Tb2!MATRICULE
Do Until Tb2.EOF
MonMat2 = Tb2!MATRICULE
TbCpt = DCount("MATRICULE", "@ESSAI", "[MATRICULE] =" &
MonMat2)
CPT = 1
MonMat1 = MonMat2
Do While TbCpt >= CPT
Select Case CPT
Case Is = 1
NewPaye = 0
Case Is > 1
Tb1.MovePrevious
NewPaye = Tb1!PAYE
Tb1.MoveNext
End Select
MonTps = Tb1!TPSPASSE
Tb1.Edit
MaPaye = NewPaye + MonTps
Tb1!PAYE = MaPaye
Tb1.Update
Tb1.MoveNext
CPT = CPT + 1
Loop
Tb2.MoveNext
Loop
Cela fonctionne bien mais ce n'est pas fiable car si dans @ESSAI_MAT il
me manque par exemple le MATRICULE 512. Dans @ESSAI le 512 n'est pas
sauté mais les cumuls sont effectués sans tenir compte du N° qui manque
et j'obtiens ce résultat erroné :
MATRICULE TPSPASSE PAYE
256 1 1
256 1 2
256 1 3
256 1 4
256 1 5
256 1 6
1024 1 1
1024 1 2
1024 1 1
2048 1 2
2048 1 3
2048 1 4
2048 1 5
2048 1 6
2048 1 0
2048 1 0
La question découle, comment puis faire pour que les "512" soient
sautés est que ma répartition reprenne correctement son cours ?
D'avance merci