Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 15h52   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 82
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 82
Points : 28
Points : 28
Par défaut Rafraichissement du bouton "Fermer" d'Access

Bonjour,

Pour empêcher la sortie intempestive des utilisateurs, je désactive le bouton "Fermer" de la barre de menu d'Access par le code suivant :
Code :
1
2
3
4
5
6
7
8
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long                   
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Const SC_CLOSE = &HF060&
Public Const MF_BYCOMMAND = &H0&
------
Dim hSysMenu As Long
hSysMenu = GetSystemMenu(Application.hWndAccessApp, False)
RemoveMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
Ca marche très bien sauf que ce bouton, même s'il est bien rendu inopérant, ne devient pas grisé tout de suite : il faut par exemple mettre Access en icone pour qu'il se grise.

Quelqu'un saurait-il comment forcer le rafraîchissement immédiat de ce bouton ?

Merci d'avance.
olaf_le_preux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h29   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Essaie en ajoutant ces déclarations :
Code :
1
2
3
4
5
6
7
8
9
10
Public Const SWP_NOSIZE As Long = &H1
Public Const SWP_NOMOVE As Long = &H2
Public Const SWP_NOZORDER As Long = &H4
Public Const SWP_FRAMECHANGED As Long = &H20
Public Const SWP_refresh = SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED
 
Public Declare Function SetWindowPos Lib "user32.dll" _
      (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _
       ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, _
       ByVal uFlags As Integer) As Boolean
Après avoir avoir retiré "Fermer" du menu système, appelle SetWindowPos :
Code :
SetWindowPos Application.hWndAccessApp, 0, 0, 0, 0, 0, SWP_refresh
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web