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]Comment faire une pause


Sujet :

VBA Access

  1. #1
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut [VBA]Comment faire une pause
    Bonjour à tous,

    Je souhaite faire une pause dans l'execution d'un code, j'ai trouvé dans la FAQ le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Placez cette ligne dans la partie Déclarations d'un module :
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
     
    Vous pourrez ainsi faire une pause de 2 secondes avec l'appel suivant :
    Sleep 2000
    Or j'ai un message d'erreur:
    erreur de compilation
    Sub ou Function non définie

    Et je ne vois pas où est le problème

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Il faut la déclarer comme Public.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

  3. #3
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut
    Après modification j'ai le message d'erreur suivant:

    L'expression sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. Des constantes, chaînes de longeur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membre Public de modules d'objet.

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Où et quand appelles tu cette fonction ?
    Mets aussi le code des fois que...

  5. #5
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut
    Voilà le 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
    Option Compare Database
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
     
    Private Sub Commande8_Click()
    Dim Db As DAO.Database
    Dim tbd As DAO.TableDef
    Dim fld As DAO.Field
    Set Db = CurrentDb
    For Each tbd In Db.TableDefs
        For Each fld In tbd.Fields
            Texte0 = tbd.Name & "   " & fld.Name
            Sleep 200
        Next
    Next
    End Sub

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Bizarre : j'ai pas le problème.

    J'ai testé avec la fonction en public dans un module, en private dans le module du formulaire : tout fonctionne...

  7. #7
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut
    Est-ce que ça peut venir d'une référence manquante, voila celles que j'utilise:

    * Visual Basic for Application
    * Microsoft Access 11.0 Object Library
    * OLE Automation
    * Microsoft DAO 3.6 Object Library
    * Microsoft ActiveX Data Objects 2.1 Library
    * Microsoft Scripting Runtime

    sait on jamais

  8. #8
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Pour être sur, j'ai testé ton code : il fonctionne.
    C'est la ligne Sleep 200 qui est en cause ??

  9. #9
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par Thierry''
    Est-ce que ça peut venir d'une référence manquante, voila celles que j'utilise:

    * Visual Basic for Application
    * Microsoft Access 11.0 Object Library
    * OLE Automation
    * Microsoft DAO 3.6 Object Library
    * Microsoft ActiveX Data Objects 2.1 Library
    * Microsoft Scripting Runtime

    sait on jamais
    Tu as celles qu'il faut...

  10. #10
    Membre du Club Avatar de Thierry''
    Profil pro
    Inscrit en
    Février 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 75
    Points : 60
    Points
    60
    Par défaut
    Pas uniquement, car je dois supprimer les deux lignes pour que ça fonctionne
    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
    'Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
     
    Private Sub Commande8_Click()
    Dim Db As DAO.Database
    Dim tbd As DAO.TableDef
    Dim fld As DAO.Field
    Set Db = CurrentDb
    For Each tbd In Db.TableDefs
        For Each fld In tbd.Fields
            Texte0 = tbd.Name & "   " & fld.Name
      '      Sleep 200
        Next
    Next
    End Sub

  11. #11
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 943
    Points : 4 868
    Points
    4 868
    Par défaut
    On peut aussi la jouer sans slip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Sub Pause(sngDuree As Single)
    Dim Start As Long
    Dim Check As Long
        Start = Timer
        Do Until Check >= Start + sngDuree
            Check = Timer
            DoEvents
        Loop
    End Sub

  12. #12
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Ok faut avouer que le caleçon fonctionne. Mais pourquoi son slip ne marche pas alors que chez moi ça marche...

  13. #13
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    j'ai trouvé pourquoi le slip est troué:

    il faut Private dans le module du form: car on ne peut déclaré en Public dans un module d'un form
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    pour le déclaré en public il faut le mettre dans un module a part:
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

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

    J'ai testé sous 2000 j'ai le même soucis que Thierry", à mon avis il faut essayer avec le timer fourni avec les formulaires.

    Starec

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 943
    Points : 4 868
    Points
    4 868
    Par défaut
    Même déclaration (dans un module), même code, ça marche correctement.
    acc2000 sp3, win2000
    Belle journée

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/12/2009, 01h36
  2. [VBA]comment faire une procédure vba
    Par FRIGAUX dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/03/2007, 16h59
  3. comment faire une pause
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 20/02/2007, 00h58
  4. [console]Comment faire une pause?
    Par aminee009 dans le forum MFC
    Réponses: 5
    Dernier message: 20/10/2005, 11h33

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