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



The information in this article applies to:

  • Microsoft Access 97

This article was previously published under Q195949
Moderate: Requires basic macro, coding, and interoperability skills.

SUMMARY

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. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers 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 requirements. 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:
          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
    					
  2. 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."

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbhowto KB195949