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 :

Comment Quitter un événement Form_Current sur un sous-formualire en mode continu? [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut Comment Quitter un événement Form_Current sur un sous-formualire en mode continu?
    Bonjour à tous

    Sur mon sous-formulaire en mode continu j'ai l'événement Form_Current (Activation) , je fais un test NewRecord
    avec une MsgBox pour confirmer si je veux ou Non Créer un Nouvel Enregistrement.

    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
    Private Sub Form_Current()  
        '--------------------------------------------------------------------------------------------------------------------------------
        '  Si Nouvel Enregistrement                                                                                                     !
        '--------------------------------------------------------------------------------------------------------------------------------
        If Me.NewRecord Then
     
            '######## Voulez-vous Créer Une Nouvelle Facture ?#######                                                                                    !
     
            'Je ne Veux PAS de Création ==> Retour à l'Appelant
             If MsgBox("Créer Une Nouvelle Facture ? ", vbInformation + vbOKCancel + vbDefaultButton2, "Nouvelle Facture ?") = vbCancel Then
     
                If Me.Recordset.RecordCount > 0 Then
                    'Il Existe déjà une Facture
                    MsgBox "il Existe une Facture(s) "
                    'ici je veux faire un retour à l'appelant mais ...
                    ' DoCmd.Close Génére Erreur 2585->Impossible d'éxécuter une action pendant le traitement d'un événement  
                Else
                    'Y a pas de Facture
                    MsgBox "Y a pas de Facture"
                    'ici je veux faire un retour à l'appelant mais ...
                    ' DoCmd.Close Génére Erreur 2585->Impossible d'éxécuter une action pendant le traitement d'un événement  
                End If
     
             Else
                'Création Nouvelle Facture
                Me.FacTypeDoc.SetFocus
                Me.FacTypeDoc.BackColor = RGB(255, 255, 60) 'couleur Jaune
             End If
    End If
    Si je fais un Exit Sub je n'ai pas d'Erreur mais le sous-Formulaire s'affiche en mode Création et attend la saisie et ça je veux pas !

    En fait si je ne veux pas créer une Nouvelle Facture je veux simplement que la réponse vbCancel de la MsgBox Annule le mode Création .
    et retourner à l'Appelant
    Je ne trouve pas comment faire

    De plus Access passe automatique ce sous-Formulaire en mode Création si il il n'y a aucun Enregistrement dans la Table

    Merci pour l'aide

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Il y a une solution avec la minuterie.

    Ajouter une variable au sous-formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private bFermer As Boolean
    Définir la procédure événementielle "Sur minuterie"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Timer()
    Me.TimerInterval = 0
     
    If bFermer Then
       DoCmd.Close
    End If
    End Sub
    Pour invoquer DoCmd.Close faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             bFermer = True
             Me.TimerInterval = 50
    A+

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut
    Merci LedZeppII ça marche

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/10/2011, 13h53
  2. Réponses: 6
    Dernier message: 23/09/2010, 21h41
  3. Réponses: 2
    Dernier message: 28/05/2007, 18h45
  4. Réponses: 2
    Dernier message: 16/02/2007, 16h56
  5. Naviguer sur Internet sous Linux en mode texte
    Par 7ob2006 dans le forum PyQt
    Réponses: 3
    Dernier message: 24/11/2006, 15h43

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