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 :

Erreur aléatoire lors de l'exécution d'une instruction Copyfile


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 54
    Points
    54
    Par défaut Erreur aléatoire lors de l'exécution d'une instruction Copyfile
    Bonjour cher réseau.

    Dans l'application de l'association dont je m'occupe, je récupère chaque nuit (par une "tâche programmée") un fichier .csv issu du site web de l'assoc.
    Ce fichier est déposé par le gestionnaire du site dans un FTP que je "map" sur un lecteur logique (w:\). Comme je dois reformater le fichier, je dois en faire une copie sur mon Disque dur.

    voici le code en cause : (en vert les commentaires, en rouge la ligne qui plante... quand elle plante !)
    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
    Function chemin_et_fichier_contact_AIW_valide() As String
    
    Dim rsloc As Recordset
    Dim remp As String
    Dim pa As String
    Dim s As String
     Dim fs
    
    'Cette fonction est utilisée pour la synchro automatique de bdd avec AIW à partir du fichier avarap471_contacts.csv
    
    '1) vérifie que le fichier ftp est bien en ligne et
    'si ok, recopie "avarap471_contacts" situé dans le chemin du ftp dans le répertoire chemindownloads
    ' retourne le nom du fichier et de son chemin
    
    'je m'assure que cheminftp_aiw est documenté, si ce n'est pas le cas je m'arrête après message
    If cheminftp_aiw = "" Or IsNull(cheminftp_aiw) Then dummy = get_chemins()
    'Je vérifie que le fichier csv est en ligne
    
    If Not existe(cheminftp_aiw, "avarap471_contacts.csv") Then
    dummy = MsgBox("fichier " & cheminftp_aiw & "avarap471_contacts.csv Introuvable." & Chr(13) & Chr(10) & "Vérifiez que le lecteur w: est bien connecté au serveur ftp; si ce n'est pas le cas, demandez l'intervention de l'administrateur...", vbOKOnly)
    Exit Function
    End If
    
    'je recopie le fichier du serveur ftp dans mon répertoire extraction
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.copyfile cheminftp_aiw & "avarap471_contacts.csv", chemindownloads & "avarap471_contacts.csv"
    
    chemin_et_fichier_contact_AIW_valide = chemindownloads & "avarap471_contacts.csv"
    End Function

    Un matin de temps en temps, on retrouve la synchronisation plantée sur la ligne marquée en rouge.....

    le message erreur est :

    Erreur d'exécution '-2147023779 (8007045d)'
    la méthode Copyfile de l'objet 'Ifilesystem3' a échoué

    qu'est ce que ce N° d'erreur d'exécution ?
    Qu'est-ce que "Ifilesystem3"Et comment cette erreur peut elle être aléatoire (ou plutôt, devrais-je dire, quelle est le paramètre qui influe "à l'insu de mon plein gré !"

    En grand merci d'avance pour toute lumière sur ces questions....

    Cordialement

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Je ne pense pas que cette approche soit la meilleure.

    Regarde ce tuto.

    http://arkham46.developpez.com/artic...ge=page_7#L8-C

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Merci Loufab pour le lien.

    J'ai essayé de comprendre mais ma culture HTML, FTP etc est un peu juste et j'ai de la peine.... C'est pour cette raison que j'ai développé l'appli en mappant le répertoire FTP sur un lecteur "W:", à l'aide d'un utilitaire du marché nommé netdrive. (j'utilise cet outil pour d'autres parties de l'appli et il marche sans problème)

    Voici maintenant un point de la situation.

    Pour contourner le problème de Copyfile, ,j'ai remplacé cette instruction par un shell sur un petit fichier .bat, à la papa !
    En mode debug, cela semblait marcher .... sauf que de temps en temps, l'exécution du fichier .bat avortait avec un message plus clair : problème d'E/S


    En essayant de localiser la source de l'erreur, j'ai procédé en déroulant le programme pas à pas et, oh surprise, le programme ne plantait jamais. Tout se passe donc comme si des opérations d'I/O prenaient un temps supérieur au temps pour passer à l'opération suivante... car quand je relancait le programme en mode normal, le plantage resurgissait !

    Sur cette hypothèse, j'ai décidé de ralentir le programme en ajoutant, après chaque opération d'I/O une pause artificielle de 5 " ... et depuis, le programme n'a pas planté. (cela ne fait que 24 h et j'attendrai un peu avant de crier victoire)

    Cela est totalement empirique, me paraît bizarre et ne correspond à aucune de mes modestes connaissances.

    Quelqu'un a t'il une idée de ce qui se passe ?

    J'ai la faiblesse de croire que l'informatique est une activité rationnelle et pour l'instant je n'y trouve pas mon compte !

    Cordialement

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Ce problème de synchro ne me surprend pas du tout.

    L'interface entre le net et les applications de bureau doivent passer par des bibliothèques prévues pour ça.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Erreurs lors de l'exécution d'une procédure
    Par vanesa dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/01/2009, 17h48
  2. Erreur bizarre lors de l'exécution d'une requête
    Par Mr. NoReaction dans le forum JDBC
    Réponses: 1
    Dernier message: 05/11/2008, 21h22
  3. Erreur lors de l'exécution d'une requête avec ADOquery
    Par doolar dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2008, 13h26
  4. [PostgreSQL] [PostGreSQL] Obtention d'une erreur lors de l'exécution d'une requête
    Par cbombabill dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2008, 11h56
  5. Erreur SQL0104N lors de l'exécution d'une stored proc
    Par bladerunners dans le forum DB2
    Réponses: 1
    Dernier message: 22/03/2007, 19h50

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