Bonjour !

j'ai un souci avec le code suivant :

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
32
33
34
35
36
37
38
39
40
41
42
    While Not tar.EOF
        For j = 1 To 10
 
            Dim criter As String
            criter = "SELECT * FROM R_intervalle_analyse " & "WHERE R_intervalle_analyse.n°fourchette =  " & j & " And R_intervalle_analyse.n°arrete = " & tar.Fields(0) & ";"
            Set rst = CurrentDb.OpenRecordset(criter)
 
            If Not IsNull(rst.Fields(2) = j) Then
 
                'rempli la table T_Tmp_annee1
                max = DMax("R_intervalle_analyse.[nb_analyse_annee1]", "R_intervalle_analyse", "R_intervalle_analyse.[n°fourchette]=" & j & " And R_intervalle_analyse.[n°arrete] = " & tar.Fields(0))
                For k = 1 To max
                    rst2.AddNew
                    rst2.Fields(0) = rst.Fields(0)
                    rst2.Fields(1) = rst.Fields(2)
                    If IsNull(rst4.Fields(3)) Then
                        rst2.Fields(2) = (Int(52 / max / 2) + (k - 1) * rst.Fields(5)) * 7 + DateSerial(Year(Date), 1, 1)
                    Else
                        rst2.Fields(2) = (Int(52 / max / 2) + (k - 1) * rst.Fields(5)) * 7 + DateSerial(Year(Date), Month(rst4.Fields(3)), Day(rst4.Fields(3)))
                    End If
                    rst2.Update
                Next k
 
                'rempli la table T_Tmp_routine
                max = DMax("R_intervalle_analyse.[nb_analyse_routine]", "R_intervalle_analyse", "R_intervalle_analyse.[n°fourchette]=" & j)
                For k = 1 To max
                    rst3.AddNew
                    rst3.Fields(0) = rst.Fields(0)
                    rst3.Fields(1) = rst.Fields(2)
                    If IsNull(rst4.Fields(3)) Then
                        rst3.Fields(2) = (Int(52 / max / 2) + (k - 1) * rst.Fields(6)) * 7 + DateSerial(Year(Date), 1, 1)
                    Else
                        rst3.Fields(2) = (Int(52 / max / 2) + (k - 1) * rst.Fields(6)) * 7 + DateSerial(Year(Date), Month(rst4.Fields(3)), Day(rst4.Fields(3)))
                    End If
                    rst3.Update
                Next k
 
            End If
 
        Next j
        tar.MoveNext
    Wend
Seul le premier enregistrement de du recordset tar est pris en compte

Je pense que le problème vient des lignes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
criter = "SELECT * FROM R_intervalle_analyse " & "WHERE R_intervalle_analyse.n°fourchette =  " & j & " And R_intervalle_analyse.n°arrete = " & tar.Fields(0) & ";"
            Set rst = CurrentDb.OpenRecordset(criter)
mais je ne vois par comment résoudre...