Article ID: 279651 - View products that this article applies to.
This article was previously published under Q279651
This article has been archived. It is offered "as is" and will no longer be updated.
When you reference the fields of an ActiveX Data Objects (ADO) Recordset by name, for example, rs.Fields("ProductID").Value, in code that is running on a computer with Turkish regional settings, and those field names contain the letter "i" or "I", the evaluation of those field names may fail at run time. If the case of the letter "i" does not match the case of the field name in the database itself, you may receive the following error message:
Although this behavior is most commonly seen with Recordset field names, it also occurs with any other database object names (for example, table names) that are used as strings in ADO client code.
Runtime error 3265, Item cannot be found in the collection corresponding to the requested name or ordinal.
This problem does not occur in Microsoft Data Access Components (MDAC) version 2.1.
This problem occurs because the Turkish alphabet has two distinct letters that resemble the dotted and undotted letter "i". Beginning with MDAC 2.5, ADO treats the English lowercase letter "i" as a different Turkish letter than the English uppercase letter "I". This gives the impression of a case-sensitive comparison where a case-insensitive string comparison is expected.
To resolve this problem with Turkish regional settings, make sure that database object names that are used as strings in ADO code correspond to the case of the letter "i" that is used in the database itself.
Steps to Reproduce Behavior
Article ID: 279651 - Last Review: February 28, 2014 - Revision: 3.2
Contact us for more help