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
|
Function CheckMG(pUsine As String, pMG As Long, Optional pInitialize As Boolean) As Boolean
Static gMGColl As Collection
Dim ldb As DAO.Database
Dim lrs As DAO.Recordset
Dim lError As Boolean
Dim lMG As Long
On Error GoTo Gestion_Erreurs
' Si demande d'initialisation => vide la collection
If pInitialize Then
Set gMGColl = New Collection
Exit Function
End If
' Recherche le 5ème MG de l'usine dans la collection
lMG = gMGColl(CStr(pUsine))
' Si erreur, recherche du 5ème MG dans la table et ajout de ce MG à la collection
If lError Then
Set ldb = CurrentDb
Set lrs = ldb.OpenRecordset("select top 5 imp_mg from tbl_import where imp_usine='" & pUsine & "' order by imp_mg desc")
If Not lrs.EOF Then
lrs.MoveLast
lMG = lrs!imp_mg
gMGColl.Add lMG, CStr(pUsine)
End If
Set ldb = Nothing
End If
' Si le MG donné en paramètre est supérieur au 5ème MG, retourne Vrai, sinon Faux
If pMG >= lMG Then CheckMG = True
Exit Function
Gestion_Erreurs:
' Si erreur 5 = MG non trouvé dans la collection
' => flag avec lError et reprise à la ligne suivante
If Err.Number = 5 Then
lError = True
Resume Next
End If
End Function |
Partager