Microsoft KB Archive/89596

= ACC: How to Use a Microsoft Access Macro to Quit Windows =

Article ID: 89596

Article Last Modified on 1/18/2007

-

APPLIES TO


 * Microsoft Access 1.0 Standard Edition
 * Microsoft Access 1.1 Standard Edition
 * Microsoft Access 2.0 Standard Edition
 * Microsoft Access 95 Standard Edition
 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q89596



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.

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 &quot;Building Applications with Microsoft Access&quot; 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 &quot;Introduction to Programming&quot; manual in Microsoft Access version 1.x or the &quot;Building Applications&quot; 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 &quot;Shut Down&quot; 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 &quot;user&quot; (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.

In Microsoft Access 7.0 and 97:

  Create a module and type the following in the Declarations section: Declare Function ExitWindowsEx Lib &quot;user32&quot; (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.</li></ol>

You can now add the function to a form and use it as you would any other Microsoft Access function.

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.

<div class="references_section">