J'ai un petit problème mystérieux avec le code suivant. Lorsque j'exécute le code en appelant la procédure qui le contient, il passe deux fois dans la première boucle while (et affiche deux fois la valeur 1 pour la variable I) alors qu'il ne devrait passer qu'une fois dans la boucle. Lorsque j'exécute le même code en mode debug, il passe une seule fois (et donc affiche une seule fois la valeur 1).

Question : pourquoi passe-t-il 2 fois dans la boucle et quand bien même, pourquoi affiche-t-il deux fois la valeur 1 et pas une fois 1 et une fois 2 ?

Je précise que le fichier texte ne contient qu'une seule ligne bien entendu.

Merci d'avance

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
Set oFSO = New Scripting.FileSystemObject
Set oFl = oFSO.GetFile(fName)
Set oTxt = oFl.OpenAsTextStream(ForReading)
 
Dim I As Integer
I = 0
 
With oTxt
    While Not .AtEndOfStream
    I = I + 1
    Debug.Print I
        line = .ReadLine
        strSql = "SELECT ..."
        rsSqlSvr.Open strSql
        rsSqlSvr.MoveFirst
        While Not rsSqlSvr.EOF
            rsAcc.AddNew
            rsAcc.Fields("A") = rsSqlSvr.Fields("A")
            ...
            rsAcc.Update           
            rsSqlSvr.MoveNext
        Wend
        rsSqlSvr.Close
    Wend
End With
 
oCnSQLSvr.Close
Set oCnSQLSvr = Nothing
 
rsAcc.Close
Set rsAcc = Nothing
Set oCnAccess = Nothing