ACC: How to Use a Microsoft Access Macro to Quit Windows
ID: Q89596
|
The information in this article applies to:
-
Microsoft Access versions 1.0, 1.1, 2.0, 7.0, 97
SUMMARY
Advanced: Requires expert coding, interoperability, and multiuser skills.
It is possible to quit Microsoft Windows from within a Microsoft Access
application by using a Windows application programming interface (API)
function. To do this, you must create a module that declares the API
function and a procedure to call the API function; then, you must call the
procedure in a macro using the RunCode action.
This article assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
NOTE: Visual Basic for Applications is called Access Basic in Microsoft
Access versions 1.x and 2.0. For more information about Access Basic,
please refer to the "Introduction to Programming" manual in Microsoft
Access version 1.x or the "Building Applications" manual in Microsoft
Access version 2.0
MORE INFORMATION
The call to the Windows dynamic-link library (DLL) below behaves in the
same way as the Exit command from the File menu in Program Manager in
Windows 3.x, or the "Shut Down" option from the Start button in Microsoft
Windows 95 and Windows NT 4.0. Each application must agree to be closed;
for example, if you choose Cancel when you are prompted to save a file,
your exit request is also canceled.
To create a Microsoft Access function that quits Windows, follow these
steps:
In Microsoft Access 1.0, 1.10, and 2.0:
- Create a module and type the following in the Declarations section:
NOTE: In the following sample code, an underscore (_) is used as a
line-continuation character. Remove the underscore from the end of the
line when re-creating this code in Access Basic.
Option Explicit
Declare Function ExitWindows% Lib "user" (ByVal dwReserved&,_
ByVal wReturnCode%)
- Type the following procedure:
Function ExitNow ()
Dim RetVal as Integer
RetVal = ExitWindows(0, 0)
End Function
- Save the module as WinExit and close it.
- Create the following new macro called TestExit:
Macro Name Condition Action
-----------------------------
TestExit RunCode
TestExit Actions
---------------------------
RunCode
Function Name: ExitNow()
- Save the macro and close it.
In Microsoft Access 7.0 and 97:
- Create a module and type the following in the Declarations section:
Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As _
Long, ByVal dwReserved As Long) As Long
- Type the following procedure:
Function ShutDownWindows()
'This will exit all applications and shut down Windows.
Dim x As Long
x = ExitWindowsEx(1, 0)
application.Quit acExit
End Function
NOTE: If you are using Microsoft Windows NT, or if you would like
to exit all applications but not log off the user, you can change
the first ExitWindowsEx argument to 0 as follows:
x = ExitWindowsEx(0, 0)
- Save the module as WinExit and close it.
- Create the following new macro called TestExit:
Macro Name Condition Action
-----------------------------
TestExit RunCode
TestExit Actions
-----------------------------
RunCode
Function Name: ShutDownWindows()
- Save the macro and close it.
You can now add the macro to a form and use it as you would any other
Microsoft Access macro.
Microsoft does not recommend quitting Microsoft Access by using Windows
API calls, although quitting in this manner can be safely accomplished. In
some cases, temporary files can be left in the Windows Temp directory;
however, you can safely delete the Temp files.
REFERENCES
"Programming Windows: The Microsoft Guide to Writing Applications for
Windows 3," by Charles Petzold, Microsoft Press, 1990
"Programmer's Reference Library: Microsoft Windows 3.1 Guide to
Programming Reference," Volumes 1-6, Microsoft Press, 1992
Additional query words:
sdk
Keywords : kbprg
Version : WINDOWS:1.0,1.1,2.0,7.0,97
Platform : WINDOWS
Issue type : kbhowto
|