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 :

Attendre la fin d'une action


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Attendre la fin d'une action
    Bonjour,

    A la suite d'une mise à jour entre 2 tables, je donne l'ordre de fermer le formulaire. Malgré des DoEvents et des boucles, il n'attend apparemment pas la fin des traitements pour exécuter l'ordre de fermeture.

    Est ce que quelqu'un pourrait m'aider svp ?

    Merci !!!

    voici un bout de mon code (qui ne doit pas être très professionnel, mais qui fonctionne... presque jusqu'au bout)

    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
     
     
    MAJ = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
    MAJ2 = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
     
    Confirm = MsgBox("Vous allez valider la saisie d'un règlement pour " & Total & " €. Confirmez-vous la saisie ? ", 291, "           Demande de confirmation          ")
     
    Select Case Confirm
        Case 6
            DoCmd.RunSQL MAJ
            DoCmd.RunSQL MAJ2
            MsgBox "            Règlement validé             "
            DoEvents
            On Error GoTo Err_Validation_Enter
        Case 7
            MsgBox "          Corrigez votre saisie          "
            Exit Sub
        Case 8
            MsgBox "             Saisie annulée              "
    End Select
     
    DoEvents
     
    For i = 1 To 1000000000
    Next
     
    DoCmd.Close

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2003
    Messages : 37
    Points : 38
    Points
    38
    Par défaut
    Bonjour

    Tu devrais essayer de placer ton DoEvents après chaque exécutions des mises à jour.


    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
     
    MAJ = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
    MAJ2 = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
     
    Confirm = MsgBox("Vous allez valider la saisie d'un règlement pour " & Total & " €. Confirmez-vous la saisie ? ", 291, "           Demande de confirmation          ")
     
    Select Case Confirm
     
        Case 6
            DoCmd.RunSQL MAJ
      DoEvents
            DoCmd.RunSQL MAJ2
      DoEvents
            MsgBox "            Règlement validé             "
            On Error GoTo Err_Validation_Enter
        Case 7
            MsgBox "          Corrigez votre saisie          "
            Exit Sub
        Case 8
            MsgBox "             Saisie annulée              "
     
    End Select
     
    DoCmd.Close
    Bye @

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    pense à regarder dans la rubrique des sources sur le site, si l'excellent code ShWin pour créer un Thread ne pourrait pas encapsuler un traitement SQL.

  4. #4
    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 Re: Attendre la fin d'une action
    Bonjour,
    A la place de DoCmd, je te propose d'utiliser plutôt l'objet CurrentDB qui bloque Access jusqu'à la fin de l'exécution d'une de ses méthodes. Le DoEvents devient donc inutile.
    CurrentDB.Execute MAJ
    CurrentDB.Execute MAJ2

    MsgBox " Règlement validé "
    Cerise sur le gâteau, tu peux même récupérer le nombre d'enregistrements concernés par l'exécution d'une requête de "type action" (cf. CurrentDB.RecordsAffected).

Discussions similaires

  1. Attendre la fin d'une action
    Par SleTT dans le forum jQuery
    Réponses: 2
    Dernier message: 10/04/2009, 11h17
  2. Attendre la fin d'une fonction
    Par benjhe dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/12/2007, 15h44
  3. Attendre la fin d'une popup
    Par maxattack dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/07/2007, 22h27
  4. [JFrame] Attendre la fin d'une autre fenêtre
    Par nicolas.pied dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/12/2005, 10h14
  5. [FLASH MX2004] Attendre la fin d'une anim
    Par stailer dans le forum Flash
    Réponses: 2
    Dernier message: 11/07/2005, 13h47

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