Microsoft KB Archive/157471

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

Article ID: 157471

Article Last Modified on 11/23/2006

-

APPLIES TO


 * Microsoft Excel 97 Standard Edition

-



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  Object Library" (where  is the DAO version) and click OK.



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:

https://partner.microsoft.com/global/30000104

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;CNTACTMS

Follow these steps to run a Sub procedure to determine which version of DAO your project is referencing.

 Open the workbook in Microsoft Excel. Start the Visual Basic Editor by pressing ALT+F11. If the Project window is not visible, on the View menu, click Project Explorer. In the Project window, make sure the workbook is active. For example, click "VBAProject (Book1.xls)" to activate Book1.xls.</li> On the Insert menu, click Module.</li>  Type the following code in the module: Sub Return_DAO_Version MsgBox DBEngine.Version End Sub </li> Press ALT+F11 to switch to Microsoft Excel.</li> On the Tools menu, point to Macro, and then click Macros.</li> Click the Return_DAO_Version macro, and then click Run.</li></ol>

You receive a dialog box with the version of DAO that is referenced.

<div class="references_section">