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

Access Discussion :

Attente lors d'un traitement


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Points : 23
    Points
    23
    Par défaut Attente lors d'un traitement
    Bonjour,

    Dans une application Access 97 je lance l'importation d'un fichier Excel sur le click d'un bouton. Cette opération prennant un certain temps je souhaiterais signifier à l'utilisateur que les traitements sont en cours, pour qu'il ne pense pas que l'appli a plantée.

    J'avais envisagé 2 solutions.

    - Une barre de progression.
    J'ai lu pas mal de trucs sur la FAQ et le forum mais je dois avouer que là je m'en sors pas

    -Mettre le pointeur de la souris en forme de sablier pendant l'exécution.

    Et là j'ai essayé avec screen.mousepointer = 11 ou docmd.hourglass true

    avant le transfert de la feuille excel

    et docmd.hourglass false après

    mais le sablier n'est jamais visible.

    J'ai donc essayé en mettant des repaint mais ca n'a pas mieux marché.

    Est ce que quelqu'un pourrait m'indiquer une solution soit pour la barre de progression (ce que je préfèrerais) soit pour le sablier .


    Merci

  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 063
    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 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Bonjour,

    Juste après le hourglass mets un Doevents, le sablier devrait apparaitre.

    Cordialement,

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    Est ce que quelqu'un pourrait m'indiquer une solution soit pour la barre de progression (ce que je préfèrerais) soit pour le sablier .
    Pour la barre de progression il faut que tu puisses savoir à chaque instant où en est ton import.
    Si tu importes le fichier avec une seule ligne de code, genre docmd.TransferSpreadsheet alors ce n'est pas possible.
    Si tu as une boucle dans ton code qui fait un import ligne par ligne alors tu peux savoir à quel ligne tu en es sur le total de ligne à importer.
    Faut voir...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Bonjour,


    J'ai essayé d'inserer un doevents mais celà n'a rine changé pas d'appartition du sablier.
    Mon code ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Docmd.hourglass = true
    i = doevents
     
    docmd.transfertSpreadSheet(----)
     
    docmd.hourglass = false
    Pour la barre de progression :

    Existe t'il un moyen de connaitre à l'avance le nombre de ligne de la feuille excel que je dois importer ?


    Merci d'avance

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Peut-être faut-il commencer par rectifier ton code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DoCmd.Hourglass True
    DoEvents
     
    DoCmd.TransferSpreadsheet ..., ..., ..., ...
     
    DoCmd.Hourglass False

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous,

    Je ressort ce post du fin fond des âges car j'ai le même problème que son auteur et les solutions proposées ne fonctionnent pas non plus.

    Les importations pouvant durer plusieurs minutes il arrive souvent que les utilisateurs m'appellent pour me dire que la souris ne fonctionne plus. Ce qui a le don de m'agacer

    Le code est le suivant :

    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
     
        DoCmd.SetWarnings False
        DoCmd.Hourglass True
        DoEvents
        'Détermination des dates des rapports présents sur serveur'
        [Date DSP INVNT005] = FileDateTime("\\Gealp1appl1\Plip\INVNT005.txt")
        [Date DSP XDK07] = FileDateTime("\\Gealp1appl1\Plip\XDK07.txt")
        [Date DSP IDDEPOSE] = FileDateTime("\\Gealp1appl1\Plip\IDDEPOSE.txt")
        [Date DSP] = Now()
        Me.Requery
        'Mise à jour si les requêtes dispos sur le serveur sont plus récentes que celles utilisées'
        If [MAJ] > 0 Then
        'Importation rapport'
            DoCmd.OpenQuery "Importation Rapports - 01 - Suppression Import - INVNT005", acNormal, acEdit
            DoCmd.TransferText acImportDelim, "Import INVNT005", "Import - INVNT005", "\\Gealp1appl1\Plip\INVNT005.txt", False, ""
            DoCmd.OpenQuery "Importation Rapports - 01 - Suppression Import - XDK07", acNormal, acEdit
            DoCmd.TransferText acImportDelim, "Import XDK07", "Import - XDK07", "\\Gealp1appl1\Plip\XDK07.txt", False, ""
            DoCmd.OpenQuery "Importation Rapports - 01 - Suppression Import - IDDEPOSE", acNormal, acEdit
            DoCmd.TransferText acImportDelim, "Import IDDEPOSE", "Import - IDDEPOSE", "\\Gealp1appl1\Plip\IDDEPOSE.txt", False, ""
            DoCmd.OpenQuery "Importation Rapports - 01 - Suppression Import - SHIPM013", acNormal, acEdit
            DoCmd.TransferText acImportDelim, "Import SHIPM013", "Import - SHIPM013", "\\Gealp1appl1\Plip\SHIPM013.txt", False, ""
            'Création table CAP'
            DoCmd.OpenQuery "Création CAP Local - 01 - Suppression Table CAP - Général", acNormal, acEdit
            DoCmd.OpenQuery "Création CAP Local - 02 - Intégration Références", acNormal, acEdit
            DoCmd.OpenQuery "Création CAP Local - 03 - Correction Affectation Références", acNormal, acEdit
            'Création table encours'
            DoCmd.OpenQuery "Détermination Encours - 00 - Suppression table Encours", acNormal, acEdit
            DoCmd.OpenQuery "Détermination Encours - 01 - Création Table Encours A", acNormal, acEdit
            DoCmd.OpenQuery "Détermination Encours - 01 - Création Table Encours B", acNormal, acEdit
            DoCmd.OpenQuery "Détermination Encours - 01 - Création Table Encours C", acNormal, acEdit
            'Mets à jour les dates indiquant quels rapports ont été utilisés'
            [Date MAJ INVNT005] = FileDateTime("\\Gealp1appl1\Plip\INVNT005.txt")
            [Date MAJ XDK07] = FileDateTime("\\Gealp1appl1\Plip\XDK07.txt")
            [Date MAJ IDDEPOSE] = FileDateTime("\\Gealp1appl1\Plip\IDDEPOSE.txt")
            [Date MAJ SHIPM013] = FileDateTime("\\Gealp1appl1\Plip\SHIPM013.txt")
            [Date MAJ] = Now()
            Me.Requery
            'Affiche une boîte de message indiquant que la mise à jour a été effectuée'
            Beep
            MsgBox "Le système a été mis à jour avec les requêtes présentes sur le serveur", vbInformation, "Encours mis à jour"
        End If
        DoCmd.Hourglass False
        'Ouverture du formulaire'
        DoCmd.OpenForm "Menu Principal - Encours - Encours PLIP"
        Forms![Menu Principal - Encours - Encours PLIP].Form.RecordSource = "SELECT [Local - Encours].* FROM [Local - Encours]"
        Forms![Menu Principal - Encours - Encours PLIP].Titre = "Encours PLIP Global"
        Forms![Menu Principal - Encours - Encours PLIP].[Champ SHIPM013 Pied] = [Date MAJ SHIPM013]
        Forms![Menu Principal - Encours - Encours PLIP].[Champ XDK07 Pied] = [Date MAJ XDK07]
        Forms![Menu Principal - Encours - Encours PLIP].[Champ IDDEPOSE Pied] = [Date MAJ IDDEPOSE]
        Forms![Menu Principal - Encours - Encours PLIP].[Champ INVNT005 Pied] = [Date MAJ INVNT005]
    End Sub
    Merci d'avance pour toute l'aide que vous voudrez bien m'apporter.

    Cordialement,

    J. VAUTIER

Discussions similaires

  1. [Multi-Thread] Mettre un msg d'attente lors d'un traitement long
    Par pepito62 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/03/2013, 20h43
  2. Message d'attente lors d'un traitement.
    Par grenoult dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 26/10/2010, 09h30
  3. Message d'attente lors d'un traitement
    Par jbrasselet dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/10/2007, 12h40
  4. [ADO] Progression lors d'un traitement
    Par portu dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/11/2004, 10h06
  5. Réponses: 33
    Dernier message: 15/10/2004, 16h19

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