- Fonction n°1 :
-
- Function Maj_Solde_Conges()
- On Error GoTo err_conges
- '******************************************************************************************
- '******************************************************************************************
- '**************************MISE A JOUR DES CONGES (Tbl_Registre)***************************
- '******************************************************************************************
- '******************************************************************************************
- Dim cnn As New ADODB.Connection
- Dim rst As New ADODB.Recordset
- Set cnn = CurrentProject.Connection
- If MsgBox("Effectuer la mise à jour des congés ?", vbInformation + vbYesNo, "NetJoao") = vbYes Then
- DoCmd.Hourglass True
- 'Personnel présent dans l'entreprise
- rst.Open "SELECT MATRICULE, ANCIENNETE, ENTREE, NAISSANCE, CONTRAT FROM Tbl_Registre WHERE (([SORTIE]='') " & _
- "AND (TYPEPAIE NOT IN ('Interimaires', 'Gardes')))", cnn
- 'Mise à jour
- While Not rst.EOF
- lngMatricule = rst.Fields(0)
- '*****************Mise à jour Solde DIF**********************
- Code_Abs = "DIF"
- 'Appel de la procédure de mise à jour
- Call DIF.Solde_Dif
- 'Mise à jour table locale Registre du personnel identifié par un matricule
- DoCmd.RunSQL "UPDATE Tbl_Registre " & _
- "SET DIF='" & sngSolde & "' WHERE MATRICULE=" & lngMatricule
- Debug.Print "Solde DIF : " & sngSolde & " h."
- rst.MoveNext
- Wend
- Set cnn = Nothing
- rst.Close
- '**********************************************************************
- DoCmd.Hourglass False
- MsgBox "Fin de la mise à jour.", vbInformation, "NetJoao"
- Else
- Exit Function
- End If
- exit_err:
- Exit Function
- err_conges:
- MsgBox Err.Number & " " & Err.Description, vbCritical, "NetJoao"
- Resume exit_err
- End Function
-
- Fonction n° 2 :
-
- Sub Solde_Dif()
- '*********************************************
- '********DROIT INDIVIDUEL A LA FORMATION******
- '*********************************************
- Dim cnn As New ADODB.Connection
- Dim rst As New ADODB.Recordset
- Dim i As Integer
- Dim sngDroits As Single
- Dim sngAbsences As Single
- Dim lngNbJour As Long
- Set cnn = CurrentProject.Connection
- '*********************
- '*********Droits******
- '*********************
- sngDroits = 0
- lngNbJour = 0
- 'Le calcul des droits sur l'année civile, incrément des droits (20h)
- 'au 31/12 de l'année
- For i = Year(dteAnc) To Year(Now) - 1
- 'Plus d'un an de présence au 31/12/n
- If DateDiff("m", dteAnc, "12/31/" & i) >= 12 Then
- 'Mise en place du DIF en 2005
- '2004, car au 31/12/2004
- Debug.Print "********Plus de 12 mois de présence dans l'entreprise********"
- If i >= 2004 Then
- If sngDroits = 120 Then
- 'Les droits sont limités à 120h.
- sngDroits = 120
- Else
- sngDroits = (sngDroits + 20)
- End If
- End If
- Debug.Print "Nombre d'heures acquises DIF : " & sngDroits & " h. - - Année: " & i
- ElseIf DateDiff("m", dteAnc, "12/31/" & i) >= 4 Then
- 'Moins d'un an de présence
- Debug.Print "**********Moins d'un an de présence**********"
- lngNbJour = nbj_Calendaire(dteAnc, "12/31/" & i)
- 'Mise en place du DIF en 2005
- '2004 car au 31/12/2004, incrément des jours
- If i >= 2004 Then
- sngDroits = (20 * lngNbJour) / _
- (nbj_Calendaire("01/01/" & i, "12/31/" & i))
- End If
- Debug.Print "Nombre de jour de présence : " & lngNbJour & " j."
- Debug.Print "Nombre d'heures acquises DIF : " & sngDroits & " h."
- Else
- sngDroits = 0
- End If
- Next
- '***********************
- '*********Absences******
- '***********************
- sngAbsences = 0
- For i = 1 To 31
- rst.Open "SELECT SUM(VAL" & i & ") FROM PANDORE_SALHISTT " & _
- "WHERE INDIVIDU=" & lngMatricule & " AND RUB='11s0'", cnn, adOpenKeyset, adLockOptimistic
- While Not rst.EOF
- sngAbsences = sngAbsences + Nz(rst.Fields(0), 0)
- rst.MoveNext
- Wend
- rst.Close
- Next
- Debug.Print "Total heures absence DIF : " & sngAbsences & " h. Individu : " & lngMatricule
- '********************
- '*********Solde******
- '********************
- sngSolde = 0
- sngSolde = sngDroits - sngAbsences
- sngSolde = format(sngSolde, "0.00")
- Debug.Print "Solde heures DIF : " & sngSolde & " h."
- End Sub
Fonction n°1 :
Function Maj_Solde_Conges()
On Error GoTo err_conges
'******************************************************************************************
'******************************************************************************************
'**************************MISE A JOUR DES CONGES (Tbl_Registre)***************************
'******************************************************************************************
'******************************************************************************************
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Set cnn = CurrentProject.Connection
If MsgBox("Effectuer la mise à jour des congés ?", vbInformation + vbYesNo, "NetJoao") = vbYes Then
DoCmd.Hourglass True
'Personnel présent dans l'entreprise
rst.Open "SELECT MATRICULE, ANCIENNETE, ENTREE, NAISSANCE, CONTRAT FROM Tbl_Registre WHERE (([SORTIE]='') " & _
"AND (TYPEPAIE NOT IN ('Interimaires', 'Gardes')))", cnn
'Mise à jour
While Not rst.EOF
lngMatricule = rst.Fields(0)
'*****************Mise à jour Solde DIF**********************
Code_Abs = "DIF"
'Appel de la procédure de mise à jour
Call DIF.Solde_Dif
'Mise à jour table locale Registre du personnel identifié par un matricule
DoCmd.RunSQL "UPDATE Tbl_Registre " & _
"SET DIF='" & sngSolde & "' WHERE MATRICULE=" & lngMatricule
Debug.Print "Solde DIF : " & sngSolde & " h."
rst.MoveNext
Wend
Set cnn = Nothing
rst.Close
'**********************************************************************
DoCmd.Hourglass False
MsgBox "Fin de la mise à jour.", vbInformation, "NetJoao"
Else
Exit Function
End If
exit_err:
Exit Function
err_conges:
MsgBox Err.Number & " " & Err.Description, vbCritical, "NetJoao"
Resume exit_err
End Function
Fonction n° 2 :
Sub Solde_Dif()
'*********************************************
'********DROIT INDIVIDUEL A LA FORMATION******
'*********************************************
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer
Dim sngDroits As Single
Dim sngAbsences As Single
Dim lngNbJour As Long
Set cnn = CurrentProject.Connection
'*********************
'*********Droits******
'*********************
sngDroits = 0
lngNbJour = 0
'Le calcul des droits sur l'année civile, incrément des droits (20h)
'au 31/12 de l'année
For i = Year(dteAnc) To Year(Now) - 1
'Plus d'un an de présence au 31/12/n
If DateDiff("m", dteAnc, "12/31/" & i) >= 12 Then
'Mise en place du DIF en 2005
'2004, car au 31/12/2004
Debug.Print "********Plus de 12 mois de présence dans l'entreprise********"
If i >= 2004 Then
If sngDroits = 120 Then
'Les droits sont limités à 120h.
sngDroits = 120
Else
sngDroits = (sngDroits + 20)
End If
End If
Debug.Print "Nombre d'heures acquises DIF : " & sngDroits & " h. - - Année: " & i
ElseIf DateDiff("m", dteAnc, "12/31/" & i) >= 4 Then
'Moins d'un an de présence
Debug.Print "**********Moins d'un an de présence**********"
lngNbJour = nbj_Calendaire(dteAnc, "12/31/" & i)
'Mise en place du DIF en 2005
'2004 car au 31/12/2004, incrément des jours
If i >= 2004 Then
sngDroits = (20 * lngNbJour) / _
(nbj_Calendaire("01/01/" & i, "12/31/" & i))
End If
Debug.Print "Nombre de jour de présence : " & lngNbJour & " j."
Debug.Print "Nombre d'heures acquises DIF : " & sngDroits & " h."
Else
sngDroits = 0
End If
Next
'***********************
'*********Absences******
'***********************
sngAbsences = 0
For i = 1 To 31
rst.Open "SELECT SUM(VAL" & i & ") FROM PANDORE_SALHISTT " & _
"WHERE INDIVIDU=" & lngMatricule & " AND RUB='11s0'", cnn, adOpenKeyset, adLockOptimistic
While Not rst.EOF
sngAbsences = sngAbsences + Nz(rst.Fields(0), 0)
rst.MoveNext
Wend
rst.Close
Next
Debug.Print "Total heures absence DIF : " & sngAbsences & " h. Individu : " & lngMatricule
'********************
'*********Solde******
'********************
sngSolde = 0
sngSolde = sngDroits - sngAbsences
sngSolde = format(sngSolde, "0.00")
Debug.Print "Solde heures DIF : " & sngSolde & " h."
End Sub