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

This article was previously published under Q157471
This article has been archived. It is offered "as is" and will no longer be updated.
When you use CreateObject in a Microsoft Excel 97 macro to use DataAccess Objects (DAO), you may receive the following error:
Run-time error '429':
ActiveX component can't create object
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.0object if DAO 3.0 is installed on your computer.
With DAO 3.0, the object name is "DAO.DBEngine" and with DAO 3.5, theversion 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 ofcode 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 isrecommended that you avoid using CreateObject altogether with DAO for yourcode to be compatible with both versions of DAO.

Instead of using CreateObject to use DAO in your macro, check theappropriate 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 Microsoft Advisory Services. For more information, visit these Microsoft Web sites:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104

Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice

For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSFollow these steps to run a Sub procedure to determine which version of DAOyour 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.
For more information about Data Access Objects, type the following text inthe Office Assistant Window:
and click Search. Then click the topic "Data Access Objects and CollectionsReference".
XL97 8.00 Run-time error 429 ActiveX component can t create object

Article ID: 157471 - Last Review: 10/26/2013 02:38:00 - Revision: 3.0

Microsoft Excel 97 Standard Edition

  • kbnosurvey kbarchive kbdtacode kberrmsg kbprogramming KB157471