Microsoft KB Archive/121157

= ACC: How to Start Doc with Windows API ShellExecute Function =

Article ID: 121157

Article Last Modified on 5/6/2003

-

APPLIES TO


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

-



This article was previously published under Q121157



SUMMARY
Advanced: Requires expert coding, interoperability, and multiuser skills.

You can use the Windows application programming interface (API) ShellExecute function to start the application associated with a given document extension without knowing the name of the associated application. For example, you can start the Microsoft Paintbrush program by passing the file name ARCADE.BMP to the ShellExecute function.



MORE INFORMATION
The following example demonstrates how to start an application or load a document into its associated application. The Windows API ShellExecute function is different from the Access Basic Shell function in that you can pass the ShellExecute function the name of a document and it will start the associated application and then pass the filename to the application. You can also specify the working directory for the application.

NOTE: In the following sample code, an underscore (_) at the end of a line is used as a line-continuation character. Remove the underscore from the end of the line when re-creating this code in Access Basic.

  Create a new module, and then enter the following lines in the module's Declarations section:

     Option Explicit Declare Function ShellExecute Lib "SHELL" (ByVal hwnd%, ByVal _     lpszOp$, ByVal lpszFile$, ByVal lpszParams$, ByVal lpszDir$, _      ByVal fsShowCmd%) As Integer Declare Function GetDesktopWindow Lib "USER" As Integer   Create the following procedure in the module:

Function StartDoc (DocName As String) StartDoc = ShellExecute(GetDesktopWindow, "Open", DocName, _         "", "C:\", 1) End Function  From the View menu, choose Immediate Window. In the Immediate window, type the following line and then press ENTER:

? StartDoc("ARCADE.BMP")

Note that the function starts the Paintbrush program, which will then load the ARCADE.BMP file.