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 du module:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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.
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 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
cela fait deux jours que je trime et je suis à bout.
merci à tous pour vos conseils
PS le code vient de hugo 69, merci à lui
Partager