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 :

Comment attendre la création d'un fichier pour le copier


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Comment attendre la création d'un fichier pour le copier
    Bonjour, je suis en train d'essayer d'adapter à mes besoins le trés bon tuto pour imprimer ses états en PDF via PDFCreator. Je rencontre plusieurs problèmes, je vais donc y aller par étape.

    Pour commencer j'ai donc installer PDFCreator et paramétré le dossier par défaut dans Windows\Temp. J'ai également mis l'imprimante PDF par défaut. Mon programme ouvre et imprime mon état via cette imprimante, et doit le copier dans un autre répertoire (celui de l'installation du programme) avant d'effacer celui du dossier Temp. J'ai procédé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        DoCmd.OpenReport "S1", acViewNormal
     
        ' Patiente jusqu'à ce que le fichier soit présent sur le disque dur
        Do While Dir(GetSpecialFolder(CSIDL_WINDOWS) & "\Temp\sipcs.pdf") = ""
        Loop
     
        ' Copie le fichier dans le dossier de l'application et supprime celui dans Temp
        FileCopy GetSpecialFolder(CSIDL_WINDOWS) & "\Temp\sipcs.pdf", CurrentProject.Path & "\PDFs\F-S1.pdf"
        Kill GetSpecialFolder(CSIDL_WINDOWS) & "\Temp\sipcs.pdf"
    Le problème c'est que, malgré que je le force à attendre qu'il soit crée avant de le copier, je me retrouve avec une erreur 70 d'Autorisation. Je suppose que ça vient du fait que temporairement le fichier qui se crée est utilisé pour écrire dedans, et c'est pour ça que je ne peux pas le copier, car si il existe déjà la procédure ne plante pas.

    De quelle façon "propre" je peux lui dire, au niveau du do while, d'attendre que le fichier soit complétement crée avant de continuer ? Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Bon j'ai utilisé une bête fonction Sleep ! c'est toujours ça.

  3. #3
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 222
    Points
    222
    Par défaut
    SALUT, une solution pour attendre la fermeture de l'etat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        On Error Resume Next
        DoCmd.OpenReport "S1", acViewNormal
     
        ' Patiente jusqu'à ce que le l'etat soit fermé
        Do
        Loop Until Reports("S1").Name & "" = ""
        ' Copie le fichier dans le dossier de l'application et supprime celui dans Temp
        FileCopy GetSpecialFolder(CSIDL_WINDOWS) & "\Temp\sipcs.pdf", CurrentProject.Path & "\PDFs\F-S1.pdf"
        Kill GetSpecialFolder(CSIDL_WINDOWS) & "\Temp\sipcs.pdf"
    tu pourrais mettre aussi le code dans l'évèment de fermeture de l'etat sans faire de boucle

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Salut, oui mais la fermeture de l'état ne signifie pas forcément que le fichier pdf a été crée completement et qu'il est prêt à être copié, si ?

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

Discussions similaires

  1. [AC-2007] Comment attendre la fermeture d'un fichier access avant la suite du code
    Par JesusHansHuberVorme dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/12/2010, 19h27
  2. Comment attendre la disponibilté d'un fichier ?
    Par Bruno13 dans le forum Langage
    Réponses: 7
    Dernier message: 07/12/2008, 08h40
  3. Réponses: 14
    Dernier message: 05/05/2008, 15h35
  4. Attendre la création d'un fichier
    Par Homer dans le forum Delphi
    Réponses: 4
    Dernier message: 13/09/2006, 14h11
  5. Réponses: 5
    Dernier message: 08/09/2006, 12h23

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