General: Empêcher Access de fermer |
Author(s) Dev Ashish |
|
(Q) Je veux m'assurer que les usagers terminent 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 y implémenter la procédure suivante. Autrement, vous pouvez toujours utiliser un formulaire qui sera toujours 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 (optionnellement) dans Unload du
formulaire, assigner la variable à vrai:
pboolCloseAccess=True
DoCmd.Close acForm, "hfrmCloseAccess"
docmd.Quit
Si votre formulaire de navigation (Switchboard) se ferme en cours d'opération, 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 sera
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.
|