Microsoft KB Archive/202955

= PRB: Filter Property Fails When Using Multiple Single Quotation Marks =

Article ID: 202955

Article Last Modified on 5/8/2003

-

APPLIES TO


 * Microsoft Data Access Components 1.5
 * Microsoft Data Access Components 2.0
 * Microsoft Data Access Components 2.1
 * Microsoft Data Access Components 2.1 Service Pack 2
 * Microsoft Data Access Components 2.1 Service Pack 1
 * Microsoft Data Access Components 2.1 Service Pack 2
 * Microsoft Data Access Components 2.5
 * Microsoft Data Access Components 2.6
 * Microsoft Data Access Components 2.7

-



This article was previously published under Q202955



SYMPTOMS
When you filter a recordset for a character field that contains more than one single quotation mark, for instance CompanyName = O'Riley's Pub, one of the following error messages is displayed:

Run-time Error '3001' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

-or-

Run-time Error '-2147024809 (80070057)': The parameter is incorrect.



RESOLUTION
For additional information about workarounds for this issue, click the article number below to view the article in the Microsoft Knowledge Base:

245408 HOWTO: Find a Record Using Complex Criteria with ADO



Steps to Reproduce
 In Microsoft Visual Basic 5.0 or 6.0, open a new Standard EXE project. Form1 is created by default. On the Project menu, select References, and add a reference to the Microsoft ActiveX Data Objects 2.x Library.  Place the following code in the Form1 Code module: Dim rs As New ADODB.Recordset Dim cn As New ADODB.Connection

With cn .ConnectionString = "Provider=SqlOledb;Data Source=;Initial Catalog=Northwind;User id= ;Password= ;" .Open End With

cn.Execute "update employees set Lastname = 'Davolio''' where EmployeeID = 1"

With rs .CursorLocation = adUseClient .LockType = adLockBatchOptimistic .CursorType = adOpenStatic .ActiveConnection = cn .Open "select * from employees" End With

rs.Filter = "Lastname = 'Davolio'''" Debug.Print rs.RecordCount Debug.Print rs(1)

cn.Execute "update employees set Lastname = 'ODavolio' where Employeeid = 1"

rs.requery rs.Filter = "author = 'ODavolio'" 'Error Occurs Here Debug.Print rs.RecordCount Debug.Print rs(1)  Run the project. You receive the following error message:

Run-time Error '3001' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

or, under MDAC 2.6, you receive the following error message:

Run-time Error '-2147024809 (80070057)': The parameter is incorrect.



Keywords: kbdatabase kbprb kbclient KB202955

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.