incrémenter une date par une période de temps
bonjour et merci à tous pour vos précieux conseils,
je vous explique mon probleme.
j'ai une table "qualification" avec les champs :date-de_qualification (date initiale), frequence (en mois), date_de_fin. j'ai récupéré un code sur ce forum qui permet d'incrémenter la date de début en ajoutant la fréquence en mois jusqu'a la date de fin. le code ci-dessous est utilisé dans une requete "requete qualification date" qui fait appel à une table "lignes" qui comporte 50 lignes avec les valeurs suivantes: 1,2,3,4,....,50
Code:
1 2 3
| SELECT qualification.id_qualification, qualification.date_qualification, qualification.frequence, qualification.commentaire, lignes.lignes, stpmp([lignes]) AS Date_de_relecture
FROM lignes, equipement INNER JOIN qualification ON equipement.id_equipement = qualification.id_equipement
ORDER BY lignes.lignes; |
code du module:
Code:
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
| Function stpmp(lign As Long) As Date
Dim base As DAO.Database
Dim mesvaleurs As DAO.Recordset
Dim sql As String
Dim annif As Date
Dim com As Date
' Initialisation de la date
Dim cpte As Boolean
cpte = True
' Requete
Set base = CurrentDb
sql = "SELECT id_qualification, date_qualification, frequence, lignes FROM [requete qualification date]" & _
"WHERE (lignes <= " & lign & ") ORDER BY lignes;"
Set mesvaleurs = base.OpenRecordset(sql)
While Not mesvaleurs.EOF
' prends Date de depart
If cpte = True Then
annif = mesvaleurs![date_qualification]
cpte = False
' Sinon Ajoute fréquence
Else
annif = DateAdd("m", mesvaleurs![frequence], annif)
End If
com = DateAdd("m", mesvaleurs![frequence], annif)
mesvaleurs.MoveNext
Wend
stpmp = com
End Function |
si je met un seul enregistrement dans la table "qualification" le résultat de la requete est parfait. par contre si je met deux enregistrements, la requete me sort des abérations. j'aimerai savoir comment résoudre ce problème soit en changeant le code ou soit en envoyant le résultat de la requete dans ma table puis passer à un nouvelle enregistrement.
cela fait deux jours que je trime et je suis à bout.:cry:
merci à tous pour vos conseils
PS le code vient de hugo 69, merci à lui;)