---Soumis par Dev Ashish---
Prévenir Access de fermer.
(Q) Je veux m'assurer que les usagers teminent leur session en appuyant sur le bouton Exit de mon formulaire général de navigation (Switchboard), et non en fermant Access-même. Comment?
(A) Vous pouvez utiliser la procédure événementielle UnLoad d'un formulaire pour cette fin. Si votre formulaire de navigation est le premier à s'ouvrir et demeure toujours ouvert, vous pouvez simplement implémenter la méthode suivante. Ici, j'illustre la méthode en utilisant également un formulaire caché.
Définir une nouvelle variable dans un nouveau module
Public pboolCloseAccess as Boolean
'Note: Access 2.0 ne reconnaît pas le type Boolean
'utiliser le type interger à la place
'utilisant -1 comme True et 0 comme False.
Maintenant, lorsque vous ouvrez la base de données, assigner
pboolCloseAccess=False
Dans votre formulaire de référence (Switchboard), sous sa procédure
événementielle Click du bouton de sortie, et (optionellement) dans Unload du
formulaire, assigner la variable à vrai:
pboolCloseAccess=True
DoCmd.Close acForm, "hfrmCloseAccess"
docmd.Quit
Créer un nouveau formulaire (hfrmCloseAccess) dont vous minimiserez les dimensions car il sera caché, de toutes façons. Ne pas oublier, alors, d'inclure dans sa procédure événementielle onUnload:
If not pboolCloseAccess Then
Cancel = True
End if
Créer la macro Autoexec. Si vous en avez déjà une, s'assurer que vous ouvrez hfrmCloseAccess avant toute autre action, en mode caché.
La raison, ici, est la suivante: quand quelqu'un clique sur le X dans le coin supérieur gauche d'Access, le système commence à fermer les objets dans l'ordre inverse de leur création. Puisque hfrmCloseAccess est le premier formulaire à avoir été ouvert, il sera le dernier à être fermé. Mais puisque la variable booléenne est encore assignée à False, l'opération sere annulée (Cancel=True) et le formulaire ne fermera pas, et Access ne fermera pas. (Préparez vous à ré-ouvrir les formulaires requis, dans ce cas.) D'un autre coté, si l'usager ferme l'application en utilisant votre bouton, la variable est alors assignée à True, le formulaire caché se fermera, de même qu'Access.