IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Problème avec .AtEndOfStream


Sujet :

VBA Access

  1. #1
    Membre confirmé Avatar de Blaede
    Profil pro
    Inscrit en
    Août 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 120
    Par défaut Problème avec .AtEndOfStream
    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

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Citation Envoyé par Blaede Voir le message
    Lorsque j'exécute le code en appelant la procédure qui le contient, ...
    Peut-on savoir de quelle procédure il s'agit?

    Si tu obtiens n fois I=1 alors ce n'est pas ta boucle qui est en cause mais c'est que ton code est exécuté n fois... donc si ta procédure est exécutée sur un évènement cela indique que c'est lui qui survient n fois...

  3. #3
    Membre confirmé Avatar de Blaede
    Profil pro
    Inscrit en
    Août 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 120
    Par défaut
    Private Sub Process_DblClick(Cancel As Integer)

    La procedure est lancée quand je double click sur un bouton de mon formulaire.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo