You are currently offline, waiting for your internet to reconnect

PRB: Error 3265 When You Access Properties Collection

This article was previously published under Q201826
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.
When you use ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX) and try to access properties in the Properties Collection, you may receive the following error message:
Run time error '3265':
ADO could not find the object in the collection corresponding to the
name or ordinal reference requested by the application.
The following error is returned from ADO 2.5 and later:
Run-time error '3265':
Item cannot be found in the collection corresponding to the requested name or ordinal.
The object's ParentCatalog property was not set to a valid Catalog object,


the ADO Connection object associated with the Parent Catalog may be invalid.
Set the object's ParentCatalog property to a valid Catalog object,


make sure the Parent Catalog is associated with a valid ADO Connection Object.
This behavior is by design.
The Properties collection associated with ADOX objects exposes provider-specific properties. However, ADOX objects can not expose this collection if there is not a channel for ADOX to talk to the Provider. This channel is created through the object's ParentCatalog property that points to a Catalog object. The Catalog object's Connection property must be set to a valid, opened ADO Connection object. Once this is in place, ADOX objects can expose any exposed provider-specific properties.

Steps to Reproduce Behavior

  1. Start Visual Basic.
  2. Choose the default project type.
  3. Set a project reference to each of the following:Microsoft ADO Ext. 2.x for DDL and Security andMicrosoft ActiveX Data Objects 2.x Library.

  4. Paste the following code into the default form's Load method:
       Dim cnn As ADODB.Connection   Dim cat As ADOX.Catalog   Dim tbl As ADOX.Table   Dim col As ADOX.Column   Dim idx As ADOX.Index   Set cnn = CreateObject("ADODB.Connection")   With cnn      .ConnectionString = "PROVIDER=SQLOLEDB" & _                          ";DATA SOURCE=<server name>" & _                          ";USER ID=<uid>;PASSWORD=<pwd>" & _                          ";INITIAL CATALOG=<catalog name>"      .Open   End With   Set cat = CreateObject("ADOX.Catalog")   cat.ActiveConnection = cnn   Set tbl = CreateObject("ADOX.Table")   tbl.Name = "test"   tbl.Columns.Append "iMyID", adInteger   tbl.Columns.Append "cTest", adChar, 15   ' Comment the Line below and   ' Uncomment the duplicate line two lines below to avoid error.   tbl.Columns(0).Properties("Autoincrement").Value = True   'This line is the key.   Set tbl.ParentCatalog = cat   'tbl.Columns(0).Properties("Autoincrement").Value = True   cat.Tables.Append tbl					
The following is from Help under the ParentCatalog Property from the Data Acces Software Development Kit for use with Microsoft Data Access Components:
Some data providers allow provider-specific property values to be written only at creation (when a table or column is appended to its Catalog collection). To access these properties before appending these objects to a Catalog, specify the Catalog in the ParentCatalog property first.

Article ID: 201826 - Last Review: 08/23/2001 09:53:00 - Revision: 1.0

Microsoft ActiveX Data Objects 2.1, Microsoft ActiveX Data Objects 2.5, Microsoft ActiveX Data Objects 2.6, Microsoft ActiveX Data Objects 2.7

  • kbdatabase kbprb KB201826