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 :

attendre la fin d'une etape pour passé a l autre étape [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut attendre la fin d'une etape pour passé a l autre étape
    bonjour,

    dans mon access je lance un compression d'un fichier et ensuite un commande pour transfere en ftp les donnée ( je pense par un fichier bat a lance le ftp)

    mon problème est que la compression peux être longue et tu coup le ftp est lance avant la fin de la compression

    comme lui dire attendre que la compression soit fini pour lance le ftp?

    merci a vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    ZipRepertoire
    Sleep 3000
    Dim Commande As String
    Commande = "\\sa-file01\ACCESBASESTAGNE$\BASETABLE\Flux ubliflow.bat"
    Shell Commande
    Sleep 3000
        MsgBox "Opération terminée !", vbInformation
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    Sub ZipRepertoire()
        '
        'Source
        'http://www.codecomments.com/archive299-2006-2-295877.html
        '
        Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
        Dim Source, Destination, MyHex, MyBinary, i
        Dim oShell, oApp, oFolder, oCTF, oFile
        Dim oFileSys
     
        'Spécifiez le répertoire
     
     
         Source = GetDbPathOfLinkedTable("tblAdmin") & "FLUX_COMMERCIALISATION\fichier"
         Destination = GetDbPathOfLinkedTable("tblAdmin") & "FLUX_COMMERCIALISATION\ag313049.zip"
     
     
        MyHex = _
        Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
     
        For i = 0 To UBound(MyHex)
            MyBinary = MyBinary & Chr(MyHex(i))
        Next
     
        Set oShell = CreateObject("WScript.Shell")
        Set oFileSys = CreateObject("Scripting.FileSystemObject")
     
        'Création de la base du fichier zip.
        Set oCTF = oFileSys.CreateTextFile(Destination, True)
        oCTF.Write MyBinary
        oCTF.Close
        Set oCTF = Nothing
     
        Set oApp = CreateObject("Shell.Application")
     
        Set oFolder = oApp.NameSpace(Source)
        If Not oFolder Is Nothing Then _
            oApp.NameSpace(Destination).CopyHere oFolder.Items
     
        Set oFile = Nothing
        On Error Resume Next
     
        Do While (oFile Is Nothing)
            'Attention: provoque une erreur 70 si un des fichiers à zipper
            'est toujours ouvert.
            Set oFile = oFileSys.OpenTextFile(Destination, ForAppending, False)
     
            If Err.Number <> 0 Then
                Err.Clear
            End If
        Loop
     
        Set oFile = Nothing
        Set oFileSys = Nothing
     
     
    End Sub

  2. #2
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 682
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Il y aurait pas moyen de convertir le code du batch en vba ?

    Car normalement, une fois le batch lancé Access n'a plus le contrôle sur la procédure

    Peut-être utiliser une fonction du modèle WScript.Shell pour lancer l'exécution du batch :

    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
    Function RunCmd(CmdStr As String) As Boolean
    ' Utilisé pour exécuter une commande ou un batch.
        Dim oWsc As Object
     
        Set oWsc = CreateObject("WScript.Shell")
        Dim oExec As Object
        Dim cpt As Long
     
        Set oExec = oWsc.Exec(CmdStr)
     
        If (oExec.StdErr.ReadAll() = "") Then
           RunCmd = True
        Else
           RunCmd = False
        End If
     
        'Debug.Print ("STDOUT" + oExec.StdOut.ReadAll())
        'Debug.Print ("STDERR" + oExec.StdErr.ReadAll())
        Set oWsc = Nothing
     
    End Function
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    mon problème est avant de lance le bat il faudrait attendre le retour du "ZipRepertoire" fini pour lance le bat

  4. #4
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 682
    Billets dans le blog
    67
    Par défaut
    A quoi sert le :

    Dans la procédure du zip ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    je sais pas c'est un code que j'ai trouve et appliqué chez moi

  6. #6
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 682
    Billets dans le blog
    67
    Par défaut
    Cette procédure fonctionne sans souci quand elle est toute seule ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    oui ceci me gére bien le ZIP et l'autre partie me génére bien l'exportation en FTP teste sur des bouton différents

    mais la je souhaite le rentre automatique sur un seul bouton

    le fichier zip ce fait mais comme il est un peux gros il prend du temps et le ftp est lancé hors le zip n'est pas fini et du coup j'ai une exportation d'un zip non fini

  8. #8
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 682
    Billets dans le blog
    67
    Par défaut
    je suis un peu étonné car normalement ce devrait-être séquentiel
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    quand il me fais la compression il m'ouvre une fenêtre windows avec le temps de copie pour crée l'archive je pense que le problème est la
    Images attachées Images attachées  

  10. #10
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 682
    Billets dans le blog
    67
    Par défaut
    Personnellement pour extraire un seul fichier avec 7-zip, j'utilise :

    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
    Function extractFile(source as string, destination as string) As Boolean
    On error goto err_extractFile
    Dim CmdStr As String
     
    CmdStr = "c:\Program Files (x86)\7-Zip\7z.exe" & " e " & source & " -o" & destination
     
       If Not IsFile("c:\Program Files (x86)\7-Zip\7z.exe") Then
          CmdStr = "c:\Program Files\7-Zip\7z.exe" & " e " & source & " -o" & destination
       End If
     
       If RunCmd(CmdStr) Then
          extractFile = True
       Else
          extractFile = False
       End If
     
     
    Exit Function
     
    err_extractFile:
    MsgBox Err.Description
    extractFile = False
     
    End Function
    Avec la fonction RunCmd vue précédemment...si ça peut t'aider, il reste à parcourir les fichier du dossier..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 031
    Billets dans le blog
    45
    Par défaut
    Une piste possible doEvent

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    ok merci je vais pouvoir me débrouillé avec tout ceci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/10/2015, 10h00
  2. Attendre la fin d'une commande WMI pour continuer
    Par ovcrash dans le forum VBScript
    Réponses: 1
    Dernier message: 11/02/2010, 07h06
  3. [PHP 5.0] Attendre la fin d'une fonction pour en realiser une autre
    Par keaton7 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 16h06
  4. Réponses: 4
    Dernier message: 08/06/2007, 15h36
  5. [FLASH MX2004] Attendre la fin d'une anim
    Par stailer dans le forum Flash
    Réponses: 2
    Dernier message: 11/07/2005, 12h47

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