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] pause dans l'exécution du code


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Par défaut [VBA] pause dans l'exécution du code
    Bonjour,

    J'ai besoin que mon code vérifie la mise à jour de paramètres toutes les 15 minute.
    Je souhaite donc faire mes tests puis dire à access d'attendre 15' avant de refaire les tests.

    J'ai essayé la fonction Sleep proposée dans la FAQ, mais cela me crée une erreur de compilation. J'ai pourtant bien déclaré la fonction en début de module.

    Est-ce que quelqu'un vois ce que j'ai pu oublié ou a une autre solution à me proposer ?

    Merci

    P.S. : pour info je suis sur Access 2003 SP 1 sous XP SP 2

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu pensé à un formulaire (qui sera invisible pour éviter de le fermer), et à gérer l'évènement Timer de celui-ci pour lancer une routine qui fera ce que tu veux ?

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Par défaut
    Merci pour ta réponse starec.

    En fait j'aimerais pouvoir utiliser une fonction afin de pouvoir gérer plus finement le temps d'attente. De plus, je ne lance pas toujours la même fonction.

    En effet, j'ai besoin dans une même procédure d'attendre 1/4 d'heure entre les vérifications et une fois que les vérifications ont validées que l'ensemble des traitements préalables ont été réalisés, d'attendre 5' pour lancer la suite.
    (je sais, ça peut paraître bizarre comme ça, mais en fait, je dois bosser sur des données dont je ne connais pas la méthode et la durée d'alimentation. Du coup une fois que j'ai confirmé qu'une alimentation a bien commencé, j'attends un petit peu pour être sûr que l'alimentation est totalement finie)

    Du coup, je ne suis pas sûr que la gestion de l'évènement tiimer m'aide.
    En plus j'avoue que je ne maîtrise pas du tout ce sujet.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Par défaut
    Bon finalement je me suis créé un fonction.

    Pour ceux que ça intéresse :
    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
    '--------------------------------------------------------------------------------------------------------------
    ' mPause
    '--------------------------------------------------------------------------------------------------------------
    ' Objet   : Permet de faire une pause, d'une durée passée en paramètre, pendant l'exécution d'un traitement
    ' Auteur  : Julien Dufour
    ' Date    : 26.10.2007
    ' Entrées : strType - type de durée : S = seconde, N = minute ou h = heure
    ' Sorties : aucune
    ' Commentaires : 
    '--------------------------------------------------------------------------------------------------------------
    Public Sub mPause(strType As String, intDuree As Integer)
    On Error GoTo Err_mPause
    '**** DECLARATION DES VARIABLES
    Dim dtmDeb As Date
    Dim dtmFin As Date
     
    '**** INITIALISATION DES VARIABLES
        dtmDeb = Now
     
    '**** CODE DE LA PROCEDURE/FONCTION --------------------------------
        Select Case UCase$(strType)
            Case "S", "N", "H"
                dtmFin = DateAdd(strType, intDuree, dtmDeb)
            Case Else
                Err.Raise 32700, "mPause", "Le type passé en paramètre n'existe pas."
        End Select
     
        While Now < dtmFin
            DoEvents
        Wend
     
    Exit_mPause:
    '**** LIBERATION DE LA MEMOIRE
        Exit Sub
     
    '**** GESTION DES ERREURS
    Err_mPause:
        MsgBox Error$
        Resume Exit_mPause
    End Sub
    Je ne suis pas sûr que ce sois très précis (risque avec le doevents de perdre la main trop longtemps), ni que ce soit ce qu'il y a de plus optimiser, mais c'est facile à mettre en oeuvre et ça répond à mon besoin.

    Merci quand même de ton aide starec.

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

Discussions similaires

  1. Pause dans l'exécution d'une macro
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2009, 16h21
  2. [asp.net][C#] Temporisation dans l'exécution du code
    Par azertyqwerty001 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/03/2009, 15h38
  3. Exécuter le code VBA d'un module dans un sous formulaire
    Par keketteboy dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/06/2008, 11h41
  4. Réponses: 7
    Dernier message: 11/03/2007, 09h35
  5. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 07h48

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