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 53 "Fichier introuvable"


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut erreur 53 "Fichier introuvable"
    Bonjour,
    La portion de code suivante me sert lors d'une création de fichier pdf (stocké sous le nom génériqoe 'CGC.pdf') à modifier le nom du fichier pour le personnaliser.
    L'erreur 53 (fichier introuvable) se produit sur la commande Name.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      oldName = cheminsauv & "reports\CGC.pdf" 'tous les fichiers pdf créés portent ce nom
      newName = cheminsauv & "reports\" & abrf & refF & Suff
     DoEvents
      Name oldName As newName
      DoEvents
    Que DoEvents soit présent ou non ne change rien.
    On a l'impression que lorsque la commande Name est lancée, le fichier n'est pas encore sauvegardé, d'où le DoEvents, mais qui ne sert à rien !
    J'ai mis une boucle à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i=1 to 1000000:i=i:next
    sans plus de résultat, mais si je place un point d'arrêt sur la ligne de la commande Name, je constate que le fichier CGC.pdf est bien présent dans son répertoire et en redémarrant le code, tout va bien.

    Alors ??
    Amitiés

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 762
    Points
    7 762
    Par défaut
    Bonjour,

    Essaie en mettant une boucle qui attend que le fichier soit créé.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Do
        DoEvents
    Loop Until Dir(oldName) <> ""
    A+

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Merci Ledzeppll,
    J'ai fait comme suggéré avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    k = 1
     Do
        DoEvents
        k = k + 1
    Loop Until Dir(oldname) <> ""
    Debug.Print Dir(oldname) & "  " & k
    Name oldname as newname
    Le debug.print m'a donné
    CGC.pdf 396 , puis 489 etc
    après avoir vidé manuellement le rép entre deux tests.
    et ça part vers l'erreur 75 maintenant (erreur d'accès chemin/fichier) sur la commande 'Name oldname as newname'. alors que le répertoire existe bien, et qu'il n'est plus vide.
    Pourquoi alors la commande Name produit-elle une erreur ?
    Que peut-il bien se passer ?
    A+

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 762
    Points
    7 762
    Par défaut
    Bon, ça veut dire que le fichier n'a pas encore été libéré par le processus qui l'a créé.

    La méthode la plus simple est d'essayer de renommer le fichier jusqu'à ce que cela réussisse.

    Code vb : 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
    Dim ErrNum As Long, Tmr As Single, TmOut As Single
     
    Tmr = Timer: TmOut = 3 ' Timeout 3 Sec
    On Error Resume Next
    Do
        ErrNum = 0: ERR.Clear
        Name oldName As newName
        ErrNum = ERR.Number
        DoEvents
    Loop Until (ErrNum = 0) Or (Timer - Tmr > TmOut)
    On Error GoTo 0
     
    If ErrNum <> 0 Then
       MsgBox "Timeout", , "Echec"
    Else
       MsgBox "Fichier renommé"
    End If
    A+

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    C'est bon avec ton code.
    J'ai du cependant porter le timeout à 4, certains fichiers mettaient plus de 3 secondes à se charger.

    Merci de ton aide.
    Amitiés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Supprimer les erreurs de syntaxe dues aux quotes
    Par gotenks dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2006, 16h10
  2. [Erreur] E1026 Fichier introuvable : 'xxx.dfm'
    Par richard038 dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2006, 14h47

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