FIX: Using ADO with ADSI Returns 'Error 800a01ad (429)'

Article translations Article translations
Article ID: 223048
This article was previously published under Q223048
Expand all | Collapse all

Symptoms

When using Active Data Objects in conjunction with Active Directory Services Interfaces (ADSI), the application may return the following error:
Error 800a01ad (429) - ActiveX component can't create Object.

Cause

This error may result from the installation of an older version of ADSI on a computer with Microsoft Data Access Components (MDAC) version 2.1.

Older versions of ADSI install Active Data Objects version 1.0. This installation sets version 1.0 as the current version of ADO. When CreateObject() is called, it attempts to create the current version of the object, which in this case is version 1.0. Since version 1.0 has different dependencies and functionality than ActiveX Data Objects version 2.1, this call fails.

NOTE: The change in the current version affects all CreateObject() calls for this computer, not only those applications that are using ADSI. This will have a detrimental effect on applications using functionality outside of version 1.0.

Resolution

To resolve this problem you must first reinstall MDAC 2.1 in order to solve OLE-DB compatibility issues. You can do this by determining how you acquired MDAC 2.1 and reinstalling it from that source.

For information on what products ship with MDAC 2.1 please refer to the following Web site:
Microsoft Universal Data Access (MDAC) Web page
In most cases the installation file for MDAC is Mdac_typ.exe. Running this should return all files to the current version of 2.1.

At this point there are two possible solutions:

  • Download the latest version of ADSI (which is ADSI 2.5), which does not have compatibility problems with MDAC 2.1.

    -or-
  • Use the currently installed version of ADSI and attempt to work around the problem. This solution suggestion is explained in the "More Information" section of this article.

Status

This bug was corrected in ADSI 2.5.

More information

It is possible to work around these compatibility issues by explicitly creating ADO objects of version 1.0. Previous versions of ADSI are compatible with this version of ADO. Note that any ADO object that will be used must be explicitly created as version 1.0. Following is an example of how to accomplish this task:
   Set oConnection = CreateObject("ADODB.Connection.1")
   Set oRecordset = CreateObject("ADODB.Recordset.1")

      oConnection.Provider = "ADsDSOObject"
      oConnection.Open "ADs Provider"
      strQuery = "<LDAP://ServerName>;(objectClass=*);cn,adspath;subtree"
      Set oRecordset = oConnection.Execute(strQuery)
      While Not oRecordset.EOF
      ' Code to examine the recordset.
      oRecordset.MoveNext
   Wend

   Set oRecordSet = Nothing
   Set oConnection = Nothing
				
Please note that "Error '800a01ad (429)'" is caused by a conflict in ADO. Installing ADSI version 2.5 or using the preceding work around will not stop this error from occurring. You must reinstall MDAC version 2.1 in order to solve this problem.

References

For additional information about Active Directory Services Interfaces compatibility issues with Microsoft Data Access Components version 2.1, please see the following article in the Microsoft Knowledge Base:
216709 ADSI 2.0, 2.5, and MDAC 2.1 Compatibility Issues
For more information about Active Directory Services Interfaces (ADSI), please refer to the following Web site:
http://msdn2.microsoft.com/library/aa772170.aspx

Properties

Article ID: 223048 - Last Review: December 18, 2012 - Revision: 6.0
Keywords: 
kbbug kbfix kbmsg KB223048
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com