[Programmation] Variable objet ou variable de bloc With non définie
Bonjour !
j'ai un souci avec le code suivant :
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 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:
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...