XL97: Run-Time Error Using CreateObject With DAO.DBEngine (157471)



The information in this article applies to:

  • Microsoft Excel 97 for Windows

This article was previously published under Q157471

SYMPTOMS

When you use CreateObject in a Microsoft Excel 97 macro to use Data Access Objects (DAO), you may receive the following error:
Run-time error '429':
ActiveX component can't create object

CAUSE

If DAO 3.0 is not installed and you use the following line of code:
   Set x = CreateObject("DAO.DBEngine")
				
you will receive the error message described in the "Symptoms" section.

NOTE: This line of code will successfully create, without error, a DAO 3.0 object if DAO 3.0 is installed on your computer.

RESOLUTION

With DAO 3.0, the object name is "DAO.DBEngine" and with DAO 3.5, the version provided with Microsoft Excel 97, the object name has changed to "DAO.DBEngine.35". So, if you have DAO 3.5 installed, the following line of code will create, without error, a DAO 3.5 object:
   Set x = CreateObject("DAO.DBEngine.35")
				
Since the object names for DAO 3.0 and DAO 3.5 are different, it is recommended that you avoid using CreateObject altogether with DAO for your code to be compatible with both versions of DAO.

Instead of using CreateObject to use DAO in your macro, check the appropriate Data Access Object Library in the References dialog box:

  1. With a module sheet active, click References on the Tools menu.
  2. Check the "Microsoft DAO <x.x> Object Library" (where <x.x> is the DAO version) and click OK.

MORE INFORMATION

Steps to Determine What Version of DAO is Referenced

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 Partner or the Microsoft fee-based consulting line at (800) 936-5200. For more information about Microsoft Certified Partners, please visit the following Microsoft Web site: For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site: Follow these steps to run a Sub procedure to determine which version of DAO your project is referencing.

  1. Open the workbook in Microsoft Excel.
  2. Start the Visual Basic Editor by pressing ALT+F11.
  3. If the Project window is not visible, on the View menu, click Project Explorer.
  4. In the Project window, make sure the workbook is active. For example, click "VBAProject (Book1.xls)" to activate Book1.xls.
  5. On the Insert menu, click Module.
  6. Type the following code in the module:
          Sub Return_DAO_Version()
             MsgBox DBEngine.Version
          End Sub
    						
  7. Press ALT+F11 to switch to Microsoft Excel.
  8. On the Tools menu, point to Macro, and then click Macros.
  9. Click the Return_DAO_Version macro, and then click Run.
You receive a dialog box with the version of DAO that is referenced.

REFERENCES

For more information about Data Access Objects, type the following text in the Office Assistant Window:

DAO

and click Search. Then click the topic "Data Access Objects and Collections Reference".

Modification Type:MinorLast Reviewed:10/10/2006
Keywords:kbdtacode kberrmsg kbProgramming KB157471