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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| 'Déclarations des recordset
Dim rec As ADODB.Recordset
Dim rec1 As ADODB.Recordset
'variable pour récupérer le mois et l'année des champs DateControleBardin et DateBardin
Dim varannee As String
Dim varmois As String
'variable pour récupérer le mois et l'année en cour
Dim moisnow As String
Dim anneenow As String
'variable utilisé pour remplir la liste du formulaire
Dim varliste As String
'initialisation des recordset
Set rec = New ADODB.Recordset
Set rec1 = New ADODB.Recordset
'récupération du moi et de l'année en cour
anneenow = Mid(Date, 7, 4)
moisnow = Mid(Date, 4, 2)
'ouverture du recordset permettant de récupérer les postes un par un
rec.Open "SELECT IdPoste,NomPoste,DateBardin FROM POSTE WHERE DateBardin <> null ORDER BY DateBardin DESC", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rec.MoveFirst
Do While rec.EOF = False
'ouverture du recordset1 permettant de récupérer les controle fait sur le poste sélectionné
rec1.Open "SELECT IdControleBardin,DateControleBardin,IdPoste FROM CONTROLE_BARDIN WHERE DateControleBardin <> NULL AND IdPoste= " & rec.Fields(0) & " ORDER BY DateControleBardin DESC", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rec1.MoveFirst
'Si on est pas à la fin du recordset, récupérer la date et l'année du premier controle
'qui est le plus récent vu l'order by de la requete
If rec1.EOF = False Then
varmois = Mid(rec1.Fields(1), 4, 2)
varannee = Mid(rec1.Fields(1), 7, 4)
'Si la date du controle est = ou plus grande que 5ans alors le nom du poste
'est affecté à la variable
If varmois = moisnow And CInt(varannee) + 5 >= CInt(anneenow) Then
varliste = varliste & ";" & rec.Fields(1)
End If
Else
'sinon on vérifie si la DateBardin (date d'installation) est = ou supérieure à 5ans
varmois = Mid(rec.Fields(2), 4, 2)
varanne = Mid(rec.Fields(2), 7, 4)
'affectation du poste à la variable
If varmois = moisnow And CInt(varannee) + 5 >= CInt(anneenow) Then
varliste = varliste & ";" & rec.Fields(1)
End If
End If
rec.MoveNext
Loop
'remplissage de la liste par la variable
Me.Listeposte.RowSourceType = "value list"
Me.Listeposte.RowSource = varliste |
Partager