I don't know whether this will work for you, but it does for me even with
A2007 runtime.
Here one from ms
http://support.microsoft.com/kb/245746
and here a post from Terry Kreft.
Paste the following code into a module, then call it with
Call Buttons(false)
To turn them off and
Call Buttons(True)
to turn them on
' ********** Code Start *************
Option Explicit
Private Const GWL_STYLE = (-16)
Private Const WS_CAPTION = &HC00000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_SYSMENU = &H80000
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Public Const SWP_FRAMECHANGED = &H20
Private Declare Function GetWindowLong _
Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long _
) As Long
Private Declare Function SetWindowLong _
Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long _
) As Long
Private Declare Function SetWindowPos _
Lib "user32" ( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long _
) As Long
' **************************************************
'
Function AccessTitleBar(Show As Boolean) As Long
Dim hwnd As Long
Dim nIndex As Long
Dim dwNewLong As Long
Dim dwLong As Long
Dim wFlags As Long
hwnd = hWndAccessApp
nIndex = GWL_STYLE
wFlags = SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED + SWP_NOMOVE
dwLong = GetWindowLong(hwnd, nIndex)
If Show Then
dwNewLong = (dwLong Or WS_CAPTION)
Else
dwNewLong = (dwLong And Not WS_CAPTION)
End If
Call SetWindowLong(hwnd, nIndex, dwNewLong)
Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, wFlags)
End Function
Function Buttons(Show As Boolean) As Long
Dim hwnd As Long
Dim nIndex As Long
Dim dwNewLong As Long
Dim dwLong As Long
hwnd = hWndAccessApp
nIndex = GWL_STYLE
Const wFlags = SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED + SWP_NOMOVE
Const FLAGS_COMBI = WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or WS_SYSMENU
dwLong = GetWindowLong(hwnd, nIndex)
If Show Then
dwNewLong = (dwLong Or FLAGS_COMBI)
Else
dwNewLong = (dwLong And Not FLAGS_COMBI)
End If
Call SetWindowLong(hwnd, nIndex, dwNewLong)
Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, wFlags)
End Function
' ********** Code End *************
--
Terry Kreft
MVP Microsoft Access
Tony wrote:
>I am continuing to develop an Access 2007 application which was
originally converted from Access 2003. In Access 2003 I was able to
disable the Access Close button in the top righthand corner of the
screen. I have been unable to find any way to disable this button in
Access 2007 and subsequently I have been forced to find ways to detect
and handle the situations after the Access Close button has been
clicked.
I have been largely successful, but have encountered once situation
for which I am rapidly running out of ideas.
I have a form which contains a command button. The command button
opens a report in preview mode. If I click on the Access Close button
while the report is displayed and the command button's OnClick event
is still running, then control is passed to the report's OnUnload
event and I am able to handle the situation. This is only true when
the application is running as an .accdb database.
However, if I rename the database to .accdr and repeat the test, as
soon as I click on the Access Close button the application displays
the message "Execution of this application has stopped due to a run-
time error.".
I have since modified the application so that the command button's
OnClick event is closed as soon as the report is displayed. In this
scenario the .accdr application does not display the error message
when I click on the Access Close button and successfully passes
control to the report's OnUnload event.
Unfortunately, the second scenario was only created as part of my
ongoing research into the problem. In the real world I want to leave
the command button's OnClick event active so I can perform further
processing once the report has been closed.
I guess I need to understand exactly what happens when the Access
Close button is clicked. I'm aware that all global variables are lost
- and I can handle that situation. Any input or ideas would be most
welcome - particularly a way to disable the Access Close button,
which
would solve all my problems!
Thank you, Tony.
--
Please Rate the posting if helps you
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200810/1