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

IHM Discussion :

Mettre une procédure sur la fermeture d'access


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut Mettre une procédure sur la fermeture d'access
    bonjour

    j'ai besoin me mettre la procédure sur la fermeture d'access, notamment fermeture de mon application autrement qu'avec le Bouton Quitter prévu à cet effet.

    Sauriez vous ou et comment il faut que je le fasse ?

    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
    Private Sub B_Quitter_Click()
    Dim sql As Variant
    Dim sql1 As Variant
     
    sql = "Update T_Bz Set Statut = Forms![Demarrage]![RecupStatut]  where iD_bz = Forms![Demarrage]!RecupIdentifiant"
    sql1 = "Update T_Bz Set heureconnexion = Forms![Demarrage]![RecupStatut]  where iD_bz = Forms![Demarrage]!RecupIdentifiant"
     
    Me.ZL_QChantier = "*"
    Me.ZL_QSITE = "*"
    Me.ZL_QSoustraitant = "*"
    Me.ZL_QSujet = ""
    Me.ZL_QCritere = ""
    Me.B_E_QresultatAgrement.Visible = False
    Me.B_E_QresultatDoe.Visible = False
    Me.B_E_QresultatPpsps.Visible = False
    Me.B_E_QresultatQuitus.Visible = False
    Me.B_E_QresultatDGD.Visible = False
    Me.B_E_QresultatDGDAFaire.Visible = False
    Me.B_E_QresultatBilan.Visible = False
    Me.ListeCodeSite.Requery
    Me.EtiquetteDictAFaire.Visible = False
    Me.ZL_DictAFaire.Visible = False
    Me.ZL_DelegationAFaire.Visible = False
    Me.EtiquetteDelegationAFaire.Visible = False
    Me.zl_DelegationARenouveler.Visible = False
    Me.EtiquetteDelegationARenouveler.Visible = False
    Me.ZL_DelegationGpaAFaire.Visible = False
    Me.EtiquetteDelegationGpaAfaire.Visible = False
    Me.Zl_DelegationSav.Visible = False
    Me.EtiquetteDelegationSav.Visible = False
    Me.RecupStatut = ""
     
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL sql
    DoCmd.RunSQL sql1
    DoCmd.SetWarnings True
     
        DoCmd.Quit
     
     
    End Sub
    Merci de votre aide
    Isabelle
    Access version office 365
    windows 7 sous mac

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Deux solutions (il y'en a peut-être d'autres) :

    Ouvrir un formulaire caché lors de l'ouverture de l'application. Lors de la fermeture de l'application, le formulaire se ferme, et sur l'événement Sur fermeture, tu exécutes ta procédure.

    Ou tu désactives la (X) de fermeture d'Access, de façon à ne pouvoir quitter ton application que sur clic d'un bouton spécifique (ou un menu personalisé).

    C'est dans les Sources : Désactiver/Activer le bouton fermeture du menu système de la fenêtre Access.

    La deuxième solution est plus "propre", c'est mon avis, mais pas portable sur Access 2007.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Bonjour Isa et Domi2,

    je fais presque comme Domi2.
    Je supprime la boîte contrôle du formulaire et je mets un bouton Fermer (ou Quitter) dans le Ruban 2007.... le soucis c'est qu'Isa est en Access 2003

    Bonne journée.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  4. #4
    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 : 51
    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
    salut Domi2 , curt et isabelle b,

    je mettrais simplement le code dans l'événement "sur fermeture" (sans la DoCmd.Quit bien sur) et dans B_Quitter_Click() simplement un docmd.close

    ps: c'est pas trop la rubrique approprié.

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Salut Vodiem,

    je mettrais simplement le code dans l'événement "sur fermeture"
    Ben oui mais !

    L'événement Sur fermeture de quel formulaire ?

    La question posée suppose qu'on a une maîtrise complète sur l'interface (donc je pense que le sous-forum est bien approprié).

    En admettant que le formulaire qui contient le code à exécuter lors de la fermeture de l'application ne soit pas continuellement ouvert, il ne va rien se passer si l'utilisateur quitte Access avec le (X) de fermeture.

    D'où la solution du formulaire caché...

    Où inhiber le (X) de fermeture pour obliger l'utilisateur à quitter l'application uniquement sur clic d'un bouton placé sur un formulaire "Menu général /accueil). Et là on a deux événement à choix pour exécuter le code.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  6. #6
    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 : 51
    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
    salut Domi2, ce matin j'avais vu la discussion dans la rubrique requete et non ihm. remarque j'avais zappé à la fermeture de l'application...

    un formulaire caché effectivement pourrait convenir mais aussi un batch, script ou "encapsulation" de l'exécution.

    ps: l'initialisation ne devrait pas être effective puisqu'il ne devrait pas s'agir du mode création.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous

    Je me suis inspiré d'une astuce trouvée sur Internet applicable à Access 2007 pour pallier le fait qu'on ne puisse pas, dans cette version, rendre la croix de fermeture inactive. Cela marche aussi pour les autres versions.
    IL faut effectivement utiliser
    - un formulaire masqué vide (que nous appellerons Frm_Masque) lancé au démarrage de l'application par une macro Autoexec
    - et généralement un formulaire d'accueil "Frm_Accueil" sur lequel nous aurons un bouton CmdQuit

    Il faut se servir de l'évènement UnLoad qui intervient avant la fermeture du formulaire et donc de l'application.

    Evènement sur bouton du formulaire Frm_Accueil

    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
     
    Private Sub CmdQuit_Click()
    On Error GoTo Err_CmdQuit_Click 
     
    DoCmd.Close acForm, "Frm_Masque"
     
    Exit_CmdQuit_Click:
        Exit Sub
     
    Err_CmdQuit_Click:
        If Err.Number = 2501 Then 'Annule le message disant que la fermeture a été annulée
            Resume Next
        Else
            MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Attention"
            Resume Next
        End If
     
        Resume Exit_CmdQuit_Click
     
    End Sub
    Puis sur l'évènement sur Libération du formulaire "Frm_Masque" par exemple
    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
     
    On Error GoTo Err_Form_Unload_Click
    Select Case MsgBox("Etes vous sûr de vouloir fermer l'application?", vbYesNo Or vbQuestion Or vbDefaultButton1, "Message de fermeture")
    Case vbYes
     
    MsgBox "vous pouvez mettre vos procédures à cet emplacement"
     
    DoCmd.Quit
        Case vbNo
    Cancel = True
    End Select
    Exit_Form_Unload_Click:
        Exit Sub
     
    Err_Form_Unload_Click:
        MsgBox Err.Description
        Resume Exit_Form_Unload_Click
    Essayez maintenant de fermer soit avec la croix , soit avec le bouton du formulaire.
    Dernière modification par Invité ; 03/06/2009 à 17h39.

Discussions similaires

  1. [JBouton] Comment mettre une image sur un bouton ?
    Par Kyti dans le forum Composants
    Réponses: 6
    Dernier message: 11/03/2005, 16h08
  2. [Interbase] Mettre une contrainte sur un champ
    Par mika dans le forum InterBase
    Réponses: 2
    Dernier message: 26/01/2005, 14h04
  3. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 16h40
  4. mettre une JScrollBar sur un onglet
    Par thedd dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 02/03/2004, 20h12
  5. [VB6] mettre une image sur un boutton
    Par dim dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/02/2004, 01h28

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