| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647 |
- Option Compare Database
- 'fonctions de contrôle du bon fonctionnement de l'appli
- Public Function connexion()
- 'connexion de l'utilisateur
- Dim val As Integer
- Dim login, sql, VERSION As String
- login = CurrentUser
- val = acces(login)
- VERSION = parametre("VERSION")
- 'maj des infos dans ztblUtilisateur, et dans tbl_paramutil si besoin
- If val > 0 Then
- 'utilisateur reconnu: on met à jour ses infos
- sql = "UPDATE ztblUtilisateurs SET ztblUtilisateurs.VersionAppli = '" & VERSION & "', ztblUtilisateurs.DerniereConnexion = '" & Date & "' " & _
- "WHERE (((ztblUtilisateurs.login)='" & login & "'));"
- connexion = 1
- Else
- 'nouvel utilisateur
- sql = "INSERT INTO ztblUtilisateurs ( login, acces, VersionAppli, DerniereConnexion ) " & _
- "SELECT '" & login & "' AS Expr1, 'consult' AS Expr2, '" & VERSION & "' AS Expr3, '" & Date & "' AS Expr4;"
- Call PremCo(login)
- connexion = 0
- End If
- DoCmd.SetWarnings False
- DoCmd.RunSQL sql
- DoCmd.SetWarnings True
- End Function
- Sub PremCo(ByVal login As String)
- Dim sql, impr As String
- DoCmd.SetWarnings False
- 'ajout des lignes dans paramètres utilisateur
- sql = "INSERT INTO tbl_ParamUtil ( Parametre, Description, [User] ) " & _
- "SELECT tbl_ParamUtil.Parametre, First(tbl_ParamUtil.Description) AS PremierDeDescription, '" & login & "' AS Expr1 " & _
- "From tbl_ParamUtil " & _
- "GROUP BY tbl_ParamUtil.Parametre;"
- DoCmd.RunSQL sql
-
- 'choix de l'imprimante
- impr = NomImpr(True)
- sql = "UPDATE tbl_ParamUtil SET tbl_ParamUtil.Valeur = '" & impr & "' " & _
- "WHERE (((tbl_ParamUtil.Parametre)='Imprimante') AND ((tbl_ParamUtil.User)='" & login & "'));"
- DoCmd.RunSQL sql
-
- DoCmd.SetWarnings True
- End Sub
- Public Function VerifEtat(Tbl As String, ByVal CodeAgent As String, ByVal moisRH As Integer, ByVal anneeRH As Integer, avertissement As Integer)
- Dim critere, msg As String
- 'vérification des données stockées davant la création d'un formulaire
- 'si données non validées, suppression, sinon, invalidation
- 'avertissement: si 0, pas de message d'vartissement avant execution des requêtes; si 1: avertissement
- critere = "[CodeAgent]='" & CodeAgent & "' AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH
- VerifEtat = 0
- If Nz(DCount("[IDSuivi]", Tbl, critere), 0) >= 1 Then
- If DLookup("[Etat]", "tbl_SuiviRH", critere) = "Importé" Then
- 'msg = "Voulez vous mettre à jour les données déjà enregistrées dans la table [" & Tbl & "]?"
- Else
- If acces(CurrentUser) = 2 Then
- msg = "[ADMIN] Ce formulaire a déja été validé/édité. Voulez vous vraiment recréer les formulaires?"
- Else
- MsgBox "Ces données ont déja été validées. Veuillez contacter un administrateur."
- VerifEtat = -1
- Exit Function
- End If
- End If
-
- If Len(msg) > 0 Then
- If MsgBox(msg, vbYesNo, Tbl) = vbNo Then
- VerifEtat = -1
- Exit Function
- End If
- End If
- Call suppression(Tbl, CodeAgent, moisRH, anneeRH, avertissement)
- End If
- End Function
- Public Sub ControleMenu()
- Dim critere As String
- 'contrôle l'affichage du menu en fonction de l'état des données
- CodeAgent = forms![frm_menu].lst_agent.Column(0)
- moisRH = forms![frm_menu].lst_mois.Column(0)
- anneeRH = forms![frm_menu].lst_annee.Column(0)
- If anneeRH > 2000 And moisRH <= 12 And moisRH > 0 Then
- critere = "[Valide]=True AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH
- If Not Nz(DCount("[IDSuivi]", "tbl_SuiviRH", critere), 0) >= 1 Then
- VerrouMenu (1)
- End If
- If CodeAgent <> "" Then
- critere = "[Valide]=True AND [CodeAgent]='" & CodeAgent & "' AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH
- If Nz(DCount("[IDSuivi]", "tbl_SuiviRH", critere), 0) = 1 Then
- 'fichier importé
- If DLookup("[Etat]", "tbl_SuiviRH", critere) = "Importé" Or DLookup("[Etat]", "tbl_SuiviRH", critere) = "Invalidé" Then
- If DCount("[IDSuivi]", "tbl_FormHS", critere) > 0 And DCount("[IDSuivi]", "tbl_FormDep", critere) > 0 Then
- 'données importées et analysées
- 'vérif:
- If VerifCompteLignes(CodeAgent, moisRH, anneeRH) = 1 Then
- 'apparemment pas d'erreur d'analyse
- VerrouMenu (3)
- Else
- MsgBox "Attention: il est possible que des erreurs se soient produites lors de l'analyse des données. Il est conseillé de remettre à jour les données."
- VerrouMenu (3)
- End If
- Else
- 'données importées pas analysées
- VerrouMenu (2)
- End If
-
- ElseIf DLookup("[Etat]", "tbl_SuiviRH", critere) = "Validé" Then
- 'validé ou edité
- VerrouMenu (4)
- If DLookup("[Edite]", "tbl_SuiviRH", critere) = True Then
- forms![frm_menu].Edition.Caption = "Edité le " & DLookup("[DateEdition]", "tbl_SuiviRH", critere)
- forms![frm_menu].Edition.Visible = True
- End If
- End If
- ElseIf Nz(DCount("[IDSuivi]", "tbl_SuiviRH", critere), 0) > 1 Then
- 'erreur de suivi
- MsgBox "Attention: plusieurs lignes sont considérées comme valides dans la table de suivi pour cet agent et cette période."
- VerrouMenu (1)
- Else
- 'les données n'ont pas été importées
- VerrouMenu (1)
- End If
- Else
- If Nz(DCount("[IDSuivi]", "tbl_SuiviRH", critere), 0) >= 1 Then
- VerrouMenu (6)
- Else
- VerrouMenu (5)
- End If
- End If
- Else
- VerrouMenu (0)
- End If
- End Sub
- Public Function VerifCompteLignes(ByVal CodeAgent As String, ByVal moisRH As Integer, ByVal anneeRH As Integer)
- Dim critere As String
- critere = "[CodeAgent]='" & CodeAgent & "' AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH
- If DCount("[DateRH]", "r_NbJoursImport", critere) = DCount("[IDSuivi]", "tbl_FormHS", critere) And DCount("[DateRH]", "r_NbJoursImport", critere) = DCount("[IDSuivi]", "tbl_FormDep", critere) Then
- VerifCompteLignes = 1 'ok
- Else
- VerifCompteLignes = 0 'erreur
- End If
- End Function
- Public Function PeriodeAgent(CodeAgent As String, ByVal moisRH As Integer, ByVal anneeRH As Integer)
- 'retourne le code de la période de validité correspondante à l'agent pour le mois et l'année indiqués
- 'renvoie 0 si code non trouvé
- 'Si le mois et/ou l'année entrés en paramètres sont à 0, on prend les valeurs du formulaire menu
- Dim rs As DAO.Recordset
- Dim critere As String
- Dim DateRH As Date
- If CurrentProject.AllForms("frm_Menu").IsLoaded Then
- If moisRH = 0 Then moisRH = CInt(forms![frm_menu].[mois])
- If anneeRH = 0 Then anneeRH = CInt(forms![frm_menu].[Annee])
- 'ElseIf CurrentProject.AllForms("frm_chargement").IsLoaded Then
- ' If moisRH = 0 Then moisRH = CInt(Forms![frm_chargement].[mois])
- ' If anneeRH = 0 Then anneeRH = CInt(Forms![frm_chargement].[Annee])
- Else
- PeriodeAgent = 0
- Exit Function
- End If
- critere = "[CodeAgent]='" & CodeAgent & "'"
- DateRH = CDate("15/" & moisRH & "/" & anneeRH)
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_PeriodeAgent WHERE " & critere & ";")
- 'Debug.Print "SELECT * FROM tbl_PeriodeAgent WHERE " & critere & ";"
- If Not rs.RecordCount > 0 Then
- PeriodeAgent = 0
- Exit Function
- End If
- rs.MoveFirst
- Do Until DateRH >= rs![DateInf] And (DateRH <= rs![DateSup] Or IsNull(rs![DateSup]))
- rs.MoveNext
- If rs.EOF = True Then
- PeriodeAgent = 0
- Exit Function
- End If
- Loop
- PeriodeAgent = CInt(rs![CodePeriode])
- End Function
- Public Function PeriodeBareme(NomBareme As String, ByVal moisRH As Integer, ByVal anneeRH As Integer)
- 'retourne le code de la période de validité correspondante au barême pour le mois et l'année indiqués
- 'renvoie 0 si code non trouvé
- 'si le mois et l'année entrés en paramètres sont égaux à 0, on prend ceux du menu
- Dim rs As DAO.Recordset
- Dim critere As String
- Dim DateRH As Date
- If CurrentProject.AllForms("frm_Menu").IsLoaded Then
- If moisRH = 0 Then moisRH = CInt(forms![frm_menu].[mois])
- If anneeRH = 0 Then anneeRH = CInt(forms![frm_menu].[Annee])
- ElseIf CurrentProject.AllForms("frm_chargement").IsLoaded Then
- If moisRH = 0 Then moisRH = CInt(forms![frm_chargement].[mois])
- If anneeRH = 0 Then anneeRH = CInt(forms![frm_chargement].[Annee])
- Else
- PeriodeBareme = 0
- Exit Function
- End If
- 'MsgBox "periode bareme: " & moisRH & "/" & anneeRH
- critere = "[NomBareme]='" & NomBareme & "'"
- DateRH = CDate("15/" & moisRH & "/" & anneeRH)
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_PeriodeBareme WHERE " & critere & ";")
- If Not rs.RecordCount > 0 Then
- PeriodeBareme = 0
- Exit Function
- End If
- rs.MoveFirst
- Do Until DateRH >= rs![DateInf] And (DateRH <= rs![DateSup] Or IsNull(rs![DateSup]))
- rs.MoveNext
- If rs.EOF = True Then
- PeriodeBareme = 0
- Exit Function
- End If
- Loop
- PeriodeBareme = rs![CodePeriode]
- End Function
- Public Function CtrlValidite(ByVal table As String, ByVal Champ1_valeur As String, ByVal NvelleDateInf As Date)
- 'cette fonction vérifie que la nouvelle période n'entre pas en conflit avec une autre période
- 'elle est utilisée au sein de la fonction NvellePeriode
- Dim rs As DAO.Recordset
- Dim sql, champ1_nom As String
- Set rs = CurrentDb.OpenRecordset(table)
- champ1_nom = rs.Fields(0).Name
- Set rs = Nothing
- sql = "SELECT * FROM " & table & " WHERE [" & table & "].[" & champ1_nom & "]='" & Champ1_valeur & "' ORDER BY [DateInf];"
- Set rs = CurrentDb.OpenRecordset(sql)
- 'si pas d'autres périodes
- If rs.RecordCount = 0 Then Exit Function
- rs.MoveFirst
- Do Until rs.EOF = True
- If Not IsNull(rs![DateSup]) = True Then
- If NvelleDateInf <= rs![DateSup] And NvelleDateInf >= rs![DateInf] Then
- ' la nouvelle date est comprise dans une période déja existante, la fonction renvoie le code de cette période
- CtrlValidite = rs![CodePeriode]
- Exit Function
- End If
- End If
- rs.MoveNext
- Loop
- 'la nouvelle date n'est pas comprise dans une période existante, mais elle peut être antérieure
- ' à une période existante, auquelle cas la date de fin devra être automatiquement remplie
- rs.MoveFirst
- Do Until rs.EOF = True
- If Not IsNull(rs![DateSup]) = True Then
- If NvelleDateInf <= rs![DateInf] Then
- 'la fonction renvoie le code de cette période en négatif
- CtrlValidite = -1 * rs![CodePeriode]
- Exit Function
- End If
- End If
- rs.MoveNext
- Loop
- CtrlValidite = 0
- End Function
- Function CtrlBareme(NomBareme As String, PeriodeValidite As Integer)
- Dim rs As DAO.Recordset
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_Periodebareme WHERE [NomBareme]='" & NomBareme & "' AND [PeriodeValidite]=" & PeriodeValidite)
- End Function
- Public Function VerifPeriodeAgent(CodeAgent As String)
- 'cette fonction vérifie la cohérence des périodes affectées aux données de l'agent
- 'elle renvoie une chaine de caractères constituée du code de l'agent et de chaque date manquante dans la table des périodes
- Dim rs As DAO.Recordset
- Dim sql As String
- Dim pbm As String
- Dim dat As Date
- Dim i, k As Integer
- sql = "SELECT tbl_PeriodeAgent.CodeAgent, tbl_PeriodeAgent.DateInf, tbl_PeriodeAgent.DateSup, tbl_PeriodeAgent.CodePeriode " & _
- "FROM tbl_PeriodeAgent " & _
- "WHERE (((tbl_PeriodeAgent.CodeAgent)='" & CodeAgent & "')) " & _
- "ORDER BY tbl_PeriodeAgent.DateInf;"
- Set rs = CurrentDb.OpenRecordset(sql)
- If Not rs.RecordCount > 0 Then
- VerifPeriodeAgent = CodeAgent & ";" & "Tout"
- Exit Function
- End If
- dat = #1/1/2013# 'attention: format mois/jour/annee
- pbm = ""
- Do Until dat >= Date
- Ok = 0
- rs.MoveFirst
- Do Until rs.EOF = True
- If dat <= Nz(rs![DateSup], Date) And dat >= rs![DateInf] Then Ok = 1
- rs.MoveNext
- Loop
- If Ok = 0 Then
- k = 0
- For i = 0 To UBound(Split(pbm, ";"))
- If Split(pbm, ";")(i) = Month(dat) & "/" & Year(dat) Then k = 1
- Next i
- If k = 0 Then pbm = pbm & Month(dat) & "/" & Year(dat) & ";" 'on évite les doublons
- End If
- dat = dat + 1
- Loop
- If pbm <> "" Then
- pbm = CodeAgent & ";" & pbm
- pbm = Left(pbm, Len(pbm) - 1)
- End If
- rs.Close
- Set rs = Nothing
- VerifPeriodeAgent = pbm
- End Function
- Public Function VerifPeriodeBareme(NomBareme As String)
- 'cette fonction vérifie la cohérence des périodes affectées aux baremes
- 'elle renvoie une chaine de caractères constituée du nom du bareme et de chaque date manquante dans la table des périodes
- Dim rs As DAO.Recordset
- Dim sql As String
- Dim pbm As String
- Dim dat As Date
- Dim i, k As Integer
- sql = "SELECT tbl_PeriodeBareme.NomBareme, tbl_PeriodeBareme.DateInf, tbl_PeriodeBareme.DateSup " & _
- "FROM tbl_PeriodeBareme " & _
- "WHERE (((tbl_PeriodeBareme.NomBareme)='" & NomBareme & "')) " & _
- "ORDER BY tbl_PeriodeBareme.DateInf;"
- Set rs = CurrentDb.OpenRecordset(sql)
- If Not rs.RecordCount > 0 Then
- VerifPeriodeBareme = NomBareme & ";" & "Tout"
- Exit Function
- End If
- dat = #1/1/2013# 'attention: format mois/jour/annee
- pbm = ""
- Do Until dat >= Date
- Ok = 0
- rs.MoveFirst
- Do Until rs.EOF = True
- If dat <= Nz(rs![DateSup], Date) And dat >= rs![DateInf] Then Ok = 1
- rs.MoveNext
- Loop
- If Ok = 0 Then
- k = 0
- For i = 0 To UBound(Split(pbm, ";"))
- If Split(pbm, ";")(i) = Month(dat) & "/" & Year(dat) Then k = 1
- Next i
- If k = 0 Then pbm = pbm & Month(dat) & "/" & Year(dat) & ";" 'on évite les doublons
- End If
-
- dat = dat + 1
- Loop
- If pbm <> "" Then
- pbm = NomBareme & ";" & pbm
- pbm = Left(pbm, Len(pbm) - 1)
- End If
- rs.Close
- Set rs = Nothing
- VerifPeriodeBareme = pbm
- End Function
- Public Function VerificationComplete()
- 'lance les différentes fonctions de vérification et remplit éventuellement la table tmp_problemes
- Dim rs1, rs_pbm As DAO.Recordset
- Dim tmp, ErreurPeriode, ErreurDonnees As String
- Dim i As Integer
- 'vidage de la table tmp_problemes
- DoCmd.SetWarnings False
- DoCmd.RunSQL "DELETE * FROM tmp_problemes;"
- DoCmd.SetWarnings True
- ErreurPeriode = ""
- ErreurDonnees = ""
- Set rs_pbm = CurrentDb.OpenRecordset("tmp_problemes")
- 'Verification des périodes:
- Set rs1 = CurrentDb.OpenRecordset("SELECT tbl_Agents.CodeAgent FROM tbl_Agents GROUP BY tbl_Agents.CodeAgent;")
- rs1.MoveFirst
- Do Until rs1.EOF = True
- tmp = VerifPeriodeAgent(rs1![CodeAgent])
- If tmp <> "" Then
- For i = 1 To UBound(Split(tmp, ";"))
- rs_pbm.AddNew
- rs_pbm![ObjetConcerne] = Split(tmp, ";")(0)
- rs_pbm![erreur] = "Date(s) Manquantes(s) pour la gestion des périodes des données agent"
- rs_pbm![Detail] = Split(tmp, ";")(i)
- rs_pbm.Update
- Next i
- ErreurPeriode = "Erreurs détectées dans le paramétrage des périodes (cf. tmp_problemes)"
- End If
- rs1.MoveNext
- Loop
- rs1.Close
- Set rs1 = CurrentDb.OpenRecordset("SELECT tbl_baremes.NomBareme FROM tbl_baremes GROUP BY tbl_baremes.NomBareme;")
- rs1.MoveFirst
- Do Until rs1.EOF = True
- tmp = VerifPeriodeBareme(rs1![NomBareme])
- If tmp <> "" Then
- For i = 1 To UBound(Split(tmp, ";"))
- rs_pbm.AddNew
- rs_pbm![ObjetConcerne] = Split(tmp, ";")(0)
- rs_pbm![erreur] = "Date(s) Manquantes(s) pour la gestion des périodes du bareme"
- rs_pbm![Detail] = Split(tmp, ";")(i)
- rs_pbm.Update
- Next i
- ErreurPeriode = "Erreurs détectées dans le paramétrage des périodes (cf. tmp_problemes)"
- End If
- rs1.MoveNext
- Loop
- rs1.Close
- 'vérification de la cohérence des données des tables
- tmp = VerifTables()
- If tmp <> "" Then
- For i = 1 To UBound(Split(tmp, ";"))
- rs_pbm.AddNew
- rs_pbm![ObjetConcerne] = Split(tmp, ";")(0)
- rs_pbm![erreur] = "Données incohérentes/manquantes"
- rs_pbm![Detail] = Split(tmp, ";")(i)
- rs_pbm.Update
- Next i
- ErreurDonnees = "Erreurs détectées dans la cohérence des données des tables (cf. tmp_problemes)"
- End If
- If rs_pbm.RecordCount > 0 Then
- End If
- If Len(ErreurPeriode) > 0 Or Len(ErreurDonnees) > 0 Then
- VerificationComplete = ErreurPeriode & vbNewLine & ErreurDonnees
- Else
- VerificationComplete = ""
- End If
- End Function
- Public Function VerifTables()
- 'vérification de la cohérence des données des tables
- Dim pbm As String
- Dim rs As DAO.Recordset
- Dim i As Integer
- pbm = ""
- 'tbl_agents
- Set rs = CurrentDb.OpenRecordset("SELECT tbl_Agents.CodeAgent, tbl_Agents.TypeVehicule, tbl_Agents.DateAutorisationVP, tbl_Agents.PuissanceFiscVP, tbl_Agents.NbKmAutorisesVP " & _
- "FROM tbl_Agents " & _
- "WHERE ((tbl_Agents.TypeVehicule)<>'4') AND ((((tbl_Agents.TypeVehicule) Is Not Null)) OR (((tbl_Agents.DateAutorisationVP) Is Not Null)) OR (((tbl_Agents.PuissanceFiscVP) Is Not Null)) OR (((tbl_Agents.NbKmAutorisesVP) Is Not Null)));")
- rs.MoveFirst
- Do Until rs.EOF = True
- 'verif des données véhicules
- For i = 1 To rs.Fields.Count - 1
- If IsNull(rs.Fields(i).Value) Then pbm = pbm & ";Agent " & rs![CodeAgent] & ": champ manquant [" & rs.Fields(i).Name & "]"
- Next
- rs.MoveNext
- Loop
- If Left(pbm, 1) = ";" Then pbm = Right(pbm, Len(pbm) - 1)
- If pbm <> "" Then pbm = "tbl_Agents;" & pbm
- VerifTables = pbm
- End Function
- Public Function VerifRepas(CodeAgent As String, DateRH As Date)
- 'vérification des données à l'import: un agent n'a le droit qu'à un repas par jour
- '0 -> ok ; -1 -> non
- VerifRepas = -1
- If Nz(DSum("repas", "tbl_ImportRH", "[CodeAgent]='" & CodeAgent & "' and [DateRH]=#" & Format(DateRH, "mm-dd-yyyy") & "#"), 0) > 1 Then VerifRepas = 0
- End Function
- Public Function VerifDroit(ByVal IdImportRH As Long)
- 'vérification des données à l'import: un agent n'a le droit à des frais que s'il s'est rendu ailleurs que sur sa residence admin
- '1 -> a le droit ; 0 -> pas le droit, mais pas de données ; -1 pas le droit et des données
- Dim ResAdm As String
- Dim rs As DAO.Recordset
- Dim sortie As Integer
- 'attention aux périodes de validité des données
- ResAdm = Nz(DLookup("ResidenceAdmin", "tbl_Agents", "[CodeAgent]='" & CodeAgent & "' AND [PeriodeValidite]=" & PeriodeAgent(CodeAgent, Month(DateRH), Year(DateRH))), "")
- VerifDroit = 0
- If Len(ResAdm) = 0 Then Exit Function
- sortie = 0
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_ImportRH WHERE [CodeAgent]='" & CodeAgent & "' AND [DateRH]=#" & Format(DateRH, "mm-dd-yyyy") & "#;")
- 'Debug.Print "SELECT * FROM tbl_ImportRH WHERE [CodeAgent]='" & CodeAgent & "' AND [DateRH]=#" & Format(DateRH, "mm-dd-yyyy") & "#;"
- If Not rs.RecordCount > 0 Then Exit Function
- rs.MoveFirst
- Do Until rs.EOF = True
- If Not rs![Localisation] Like ResAdm Then sortie = sortie + 1
- rs.MoveNext
- Loop
-
- If sortie = 0 Then
- VerifDroit = 0
- rs.MoveFirst
- Do Until rs.EOF = True
- If rs![Repas] > 0 Or rs![DistanceTranche1] > 0 Or rs![DistanceTranche2] > 0 Then VerifDroit = 0
- rs.MoveNext
- Loop
- End If
- End Function
- Public Function VerifVP(CodeAgent As String, DateRH As Date)
- 'On Error GoTo fin
- Dim sql As String
- VerifVP = -1
- sql = "SELECT tbl_ImportRH.IdImportRH, tbl_ImportRH.CodeAgent, tbl_ImportRH.DateRH, tbl_ImportRH.VehiculePersoTranche1, tbl_ImportRH.VehiculePersoTranche2, " & _
- "tbl_Agents.TypeVehicule " & _
- "FROM tbl_ImportRH INNER JOIN tbl_Agents ON tbl_ImportRH.CodeAgent = tbl_Agents.CodeAgent " & _
- "WHERE (tbl_ImportRH.CodeAgent='" & CodeAgent & "' AND tbl_ImportRH.DateRH=#" & Format(DateRH, "mm-dd-yyyy") & "#) AND " & _
- "(tbl_ImportRH.VehiculePersoTranche1='True' OR tbl_ImportRH.VehiculePersoTranche2='True') AND tbl_Agents.TypeVehicule='4';"
- 'Debug.Print sql
- Set rs = CurrentDb.OpenRecordset(sql)
- If rs.RecordCount > 0 Then VerifVP = 0
- fin:
- On Error Resume Next
- rs.Close
- End Function
- Public Function VerifImport(CodeAgent As String, moisRH As Integer, anneeRH As Integer)
- On Error GoTo err
- 'procède à l'examen des données brutes lors de l'import
- Dim rs As DAO.Recordset
- VerifImport = ""
- If Len(CodeAgent) = 0 Or Not moisRH > 0 Or Not moisRH < 13 Or Not anneeRH > 2000 Then Exit Function
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM r_DonneesImport WHERE [CodeAgent]='" & CodeAgent & "' AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH & ";")
- If Not rs.RecordCount > 0 Then Exit Function
- rs.MoveFirst
- Do Until rs.EOF = True
- If rs![FraisValide] = False Then
- VerifImport = " -> DONNEES A VERIFIER"
- Exit Function
- End If
- rs.MoveNext
- Loop
- rs.Close
- Set rs = CurrentDb.OpenRecordset("SELECT * FROM r_DonneesImport2 WHERE [CodeAgent]='" & CodeAgent & "' AND [MoisRH]=" & moisRH & " AND [AnneeRH]=" & anneeRH & ";")
- If Not rs.RecordCount > 0 Then Exit Function
- rs.MoveFirst
- Do Until rs.EOF = True
- 'If VerifDroit(CodeAgent, rs![DateRH]) = -1 Or VerifRepas(CodeAgent, rs![DateRH]) = -1 Or VerifVP(CodeAgent, rs![DateRH]) = -1 Then
- If VerifRepas(CodeAgent, rs![DateRH]) = 0 Or VerifVP(CodeAgent, rs![DateRH]) = 0 Then
- VerifImport = " -> DONNEES A VERIFIER"
- Exit Function
- End If
- rs.MoveNext
- Loop
- rs.Close
- Exit Function
- err:
- VerifImport = "Impossible de vérifier les données"
- End Function
- Public Function VerifDonneesExport(ByVal CodeAgent As String, ByVal moisRH As Integer, ByVal anneeRH As Integer) As Boolean
- 'procède à l'examen des données lors de l'export vers PERIPLE
- On Error GoTo fin
- VerifDonneesExport = True
- If Len(VerifImport(CodeAgent, moisRH, anneeRH)) > 0 Then VerifDonneesExport = False
- fin:
- On Error Resume Next
- Exit Function
- err:
- MsgBox "Des erreurs se sont produites lors de la vérification des données, veuillez contacter un administrateur"
- VerifDonneesExport = False
- GoTo fin
- End Function
|