ACC97: How to Programmatically Save a Database as an MDE File

ID: Q195949


The information in this article applies to:


SUMMARY

Moderate: Requires basic macro, coding, and interoperability skills.

This article shows you how to programmatically create an MDE file from an existing database.


MORE INFORMATION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact a Microsoft Certified Solution Provider or the Microsoft fee-based consulting line at (800) 936-5200. For more information about Microsoft Certified Solution Providers, please see the following page on the World Wide Web:

http://www.microsoft.com/mcsp/
For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp
You can use Microsoft Visual Basic for Applications to create an MDE file from an existing Microsoft Access database. You can run the following sample function from any database other than the database that you want to convert to an MDE file. This function has one argument, MyPath, the full path to the database from which the MDE file will be created.
  1. Create a new module, and then type the following function:


  2. 
          Function GenerateMDEFile(MyPath As String)
    
             Dim NAcc As Access.Application
    
             Set NAcc = CreateObject("Access.Application")
    
             ' The following lines simulate accepting the default
             ' name, clicking Make MDE, and clicking Save.
             SendKeys MyPath & "{Enter}{Enter}"
             SendKeys "{Enter}"
    
             NAcc.DoCmd.RunCommand acCmdMakeMDEFile
    
             Set NAcc = Nothing
    
          End Function 
  3. To run this function, do the following:

    On the View menu, click Debug Window, and then type the following line in the Debug window

    ?GenerateMDEFile(<Path&DBName>)

    where <Path&DBName> is the full path and database name of the database from which you want to create an MDE file. Press ENTER.


NOTE: The resulting MDE file will have the same name as the original database.

WARNING: This example uses the SendKeys statement to bypass the dialog box. It is possible that this example will not work on your system because SendKeys simply sends the keystrokes as soon as the statement is processed and does not wait until the "right" moment to do so. Therefore, it's behavior is somewhat unpredictable and will vary from system to system. It may also cause an errant "ENTER" to be processed somewhere in one of your programs or open files, so use this method with caution.

Some experimentation may allow you to determine the right combination of keystrokes and events to open and close the dialog box without user intervention. This may require a different code segment than the one presented here. Remember, whatever solution you develop may work only on your machine, and may behave differently on another system.


REFERENCES

For more information about MDE Files, search the Help Index for "mde files."

Additional query words:


Keywords          : PgmHowto 
Version           : WINDOWS:97
Platform          : WINDOWS 
Issue type        : kbhowto 

Last Reviewed: July 30, 1999