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 :

[VBA] barre de progression (compactage et copie de fichier)


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut [VBA] barre de progression (compactage et copie de fichier)
    Bonjour,

    Malgré les nombreux sujets concernant les barres de progression, je ne trouve pas mon bonheur. En effet je cherche à afficher une barre de progression pendant le compactage d'une base de données puis lors de sa copie vers le réseau.

    Voici mon code


    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    ''''''''''''''''''''''''''''''''''
    'fonction permettant de compacter et sauvegarder Pertrac
    '''''''''''''''''''''''''''''''''''
    Sub Sauvegarde()
     
    'Déclaration variables
    Dim DateAuj As String
    Dim jourAuj As String
    Dim moisAuj As String
    Dim anneeAuj As String
    Dim nomsav As String
    Dim chemin As String
    Dim chemin2 As String
     
    Dim snomBase As String
    Dim snomBaseTmp As String
     
    'nom des fichiers Access
    snomBase = "C:\PerTrac\Database\Master.mdb"
    snomBaseTmp = "C:\PerTrac\Database\Master2.mdb"
     
    'permet de décomposer la date du jour en jour, mois et année
    DateAuj = Date
     
    If (Day(DateAuj) < 10) Then
    jourAuj = CStr("0" & Day(DateAuj))
    Else
    jourAuj = Day(DateAuj)
    End If
     
    moisAuj = Month(DateAuj)
    anneeAuj = Year(DateAuj)
     
    'nom de la sauvegarde : yyyy-mm-dd - Master.mdb
    nomsav = anneeAuj & "-" & moisAuj & "-" & jourAuj & " - Master"
    chemin = "F:\TRANSIT\GFFUNDS\Pertrac\Database\" & nomsav & ".mdb"
     
    'ouverture du formulaire contenant la progress bar
    DoCmd.OpenForm "progress_bar"
    DoEvents
    Forms!progress_bar.pgb_progress_bar.Value = 0
    Forms!progress_bar.pgb_progress_bar.SetFocus
    Forms!progress_bar.pgb_progress_bar.Value = 1
     
    'permet de compacter et réparer la base
    Call fBackupDB(snomBase, snomBaseTmp)
    DoEvents
    For boucleEstimation1 = 1 To 20
        Forms!progress_bar.pgb_progress_bar.Value = boucleEstimation1
        Call Attendre(2)
    Next boucleEstimation1
     
     
    'supprime et renomme les fichiers temporaires
    Kill "C:\PerTrac\Database\Master.mdb"
    Name "C:\PerTrac\Database\Master2.mdb" As "C:\PerTrac\Database\Master.mdb"
     
     
     'Copie du fichier
    FileCopy snomBase, chemin
     
    DoEvents
    Forms!progress_bar.pgb_progress_bar.SetFocus
    For boucleEstimation2 = 21 To 100
        Forms!progress_bar.pgb_progress_bar.Value = boucleEstimation2
    Next boucleEstimation2
     
     
    DoCmd.Close acForm, "progress_bar"
    End Sub
    Si quelqu'un a une petite idée.
    Merci pour vos futures réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Ceci peut-il vous aider ?

    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
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Sub Sauvegarde()
     Dim ReturnValue As Variant
     Dim message As String
     DoCmd.OpenForm "Le formulaire"
     DoEvents
    '1ère phase durée 2''
    message = "Compactage ..."
    ReturnValue = SysCmd(acSysCmdInitMeter, message, 100)
     
    For boucleEstimation1 = 1 To 20
        Call Sleep(100)
    ReturnValue = SysCmd(acSysCmdUpdateMeter, boucleEstimation1)
    Next boucleEstimation1
     '2ème phase durée 8''
     message = "Transfert ..."
    ReturnValue = SysCmd(acSysCmdInitMeter, message, 100)
    For boucleEstimation1 = 21 To 100
        Call Sleep(100)
    ReturnValue = SysCmd(acSysCmdUpdateMeter, boucleEstimation1)
    Next boucleEstimation1
    'enlever la barre de progression
    varReturn = SysCmd(acSysCmdClearStatus)
    End Sub
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Je vais tester, j'ai changé un peu mon code, j'ai mis une fenetre de copie Windows en attendant.

    Merci pour ta réponse.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Ca me convient mais est ce que l'on peut "synchroniser" les traitements compactage et transfert avec les processus?

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    J'espère ne pas dire une bêtise, mais tu ne peux pas faire une synchronisation, étant donné que tu ne peux pas récupérer à l'avance le temps d'exécution du compactage, par exemple.

    L'affichage avec une barre de progression fonctionne bien dans un traitement par boucle, mais autrement, c'est un peu (beaucoup) aléatoire.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    En fait j'ai réussi à régler la synchronisation de la copie grace au code suivant qui m'ouvre une fenetre de copie windows.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lRetourCopie = FileCopyProgress(snomBase, chemin, Form_MenuPrincipal.hwnd, True)
    J'ai remarqué lorsque l'on compacte la base de données en cours, on a la progression (synchronisée) dans la barre des taches. Ne serait-il pas possible de faire la meme chose pour le compactage d'une autre BD que celle ouverte?

  7. #7
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    J'ai remarqué lorsque l'on compacte la base de données en cours, on a la progression (synchronisée) dans la barre des taches.
    Oui, effectivement... Mais je n'ai jamais vu une discussion traitant d'une possible récupération...

    domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Tant pis...
    Vais comme meme attendre un peu avant de cloturer le sujet.
    Peut etre que quelqu'un aura une solution.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    up

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/05/2012, 10h40
  2. "Barre d'installation" lors de copie de fichier
    Par Onitsha dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 14/10/2009, 13h23
  3. Progression d'une copie de fichier en binaire ?
    Par Shypster dans le forum C#
    Réponses: 28
    Dernier message: 13/03/2009, 15h57
  4. Réponses: 2
    Dernier message: 22/03/2007, 13h25
  5. barre de progression et lib copy
    Par spirit_epock dans le forum Web
    Réponses: 2
    Dernier message: 25/04/2006, 12h08

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