ACC: How to Use a Microsoft Access Macro to Quit Windows (89596)



The information in this article applies to:

  • Microsoft Access 1.0
  • Microsoft Access 1.1
  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97

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 "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:

  1. 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%)
    						
  2. Type the following procedure:
          Function ExitNow ()
             Dim RetVal as Integer
             RetVal = ExitWindows(0, 0)
          End Function
    						
  3. Save the module as WinExit and close it.
In Microsoft Access 7.0 and 97:

  1. 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
    						
  2. 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)
    						
  3. Save the module as WinExit and close it.
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.

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

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbhowto kbProgramming KB89596