Salut Membres du Forum !
La fonction « ProgrammerTousLesSalaires » ne renvoie pas les salaires programmés
Dans la table « Table PrgSalaires » .
Aidez moi à retrouver la cause .
Voici les Fonctions :
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 Function ProgrammerTousLesSalaires() As Boolean 'On Error Resume Next Dim BD As Database Dim R As Recordset Dim sql As String Dim I As Integer Dim j As Integer Set BD = CurrentDb sql = "select * from Tbl_EngagementEmployé where demission <>-1 order by NumMle_emp ;" Set R = BD.OpenRecordset(sql) I = 0 j = 0 With R If Not .EOF Then .MoveFirst Do While Not .EOF If Not MoisDejaEnreg(.Fields("IdentifEtablisEmployeur"), .Fields("NumMle_emp"), Me.ListeMois) Then ProgrammerUnSalaire .Fields("IdentifEtablisEmployeur"), .Fields("NumMle_emp"), Me.ListeMois I = I + 1 Else j = j + 1 End If .MoveNext Loop End If End With MsgBox "BILAN :" & vbCrLf & I & " salaire(s) ont été programmé(s)," & vbCrLf & j & " salaire(s) étaient déjà programmé(s)" & vbCrLf & I + j & " salaire(s) traités.", vbInformation + vbOKOnly, "Bilan programmation" End FunctionPièce jointe
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 Sub ProgrammerUnSalaire(xIdta As Long, xMle As Long, xMois As String) Dim NoEnreg As Long Dim vSB As Double Dim vSJ As Variant NoEnreg = F_NumPrgSalaire() vSB = Replace(SalaireBaseEmployé(xIdta, xMle), ",", ".") vSJ = Replace(Round(vSB / 30, 2), ",", ".") strSQL = "INSERT INTO PrgSalaires(Etabl_Employeur,Num_Sal,Num_emp,Mois_prog,Salaire_B,salairej,restapayer) " _ & "VALUES(" & NoEnreg & "," & xIdta & "," & xMle & ",'" & xMois & "'," & vSB & "," & vSJ & "," & vSB & ")" DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Sub Public Function MoisDejaEnreg(idEtab As Long, mle_E As Long, strMois As String) As Boolean 'On Error Resume Next Dim db As Database Dim rst As Recordset Dim sql As String Set db = CurrentDb 'Etabl_Employeur sql = "select * from PrgSalaires where Etabl_Employeur =" & idEtab & "and Num_emp = " & mle_E & " and Mois_prog ='" & strMois & "' ;" Set rst = db.OpenRecordset(sql) If rst.EOF Then MoisDejaEnreg = False Else MoisDejaEnreg = True End If End Function
Partager