更新时间:2021-11-26 21:46:15
周三, 2008年5月21日01:50:27 GMT, no****@nospam.nosp am(Rick Collard)
写道:
On Wed, 21 May 2008 01:50:27 GMT, no****@nospam.nospam (Rick Collard)
wrote:
>在Access 2002数据库上使用DAO 3.6,我使用FindFirst方法得到了意想不到的结果。这里是要测试的简单代码:
Public Sub FindIt()
Dim db As Database,rs As Recordset
Dim sCriteria As String
设置db = DBEngine.Workspaces(0).Databases(0)
设置rs = db.OpenRecordset(" tblTest" ,dbOpenDynaset)
''sCriteria =" MyField =''24""直径" ''< - Works
sCriteria =" MyField ="" 24""""直径QUOT;"" ''< - 失败
rs.FindFirst sCriteria
Debug.Print sCriteria
Debug.Print" rs。 NoMatch =" &安培; rs.NoMatch
End Sub
即时窗口输出:
MyField =''24"直径''
rs.NoMatch = False
MyField =" 24""直径
rs.NoMatch = True
tblTest具有字段ID(自动编号)和MyField(文本50):
1 12"直径
2 24直径
3 36直径
第二个标准,使用双引号作为分隔符失败
如果tblTest.MyField被索引。但如果删除索引
,它会成功运行。任何人都可以从FindFirst复制或解释这种意想不到的行为吗?
Rick Collard
www.msc-lims.com
任何人都可以花几分钟时间复制问题吗? TIA
Rick Collard
www.msc -lims.com
Rick Collard写道:
Rick Collard wrote:
2008年5月21日星期三01 :格林威治标准时间50:27, no****@nospam.nosp 上午(Rick Collard)
写道:
On Wed, 21 May 2008 01:50:27 GMT, no****@nospam.nospam (Rick Collard)
wrote:
>>在Access 2002数据库上使用DAO 3.6,我使用FindFirst方法获得了意想不到的结果。这里是要测试的简单代码:
Public Sub FindIt()
Dim db As Database,rs As Recordset
Dim sCriteria As String
设置db = DBEngine.Workspaces(0).Databases(0)
设置rs = db.OpenRecordset(" tblTest",dbOpenDynaset)
'sCriteria =" ; MyField =''24""直径" ''< - Works
sCriteria =" MyField ="" 24""""直径QUOT;"" ''< - 失败
rs.FindFirst sCriteria
Debug.Print sCriteria
Debug.Print" rs.NoMatch =" &安培; rs.NoMatch
End Sub
即时窗口输出:
MyField =''24"直径''
rs.NoMatch = False
MyField =" 24""直径
rs.NoMatch = True
tblTest具有字段ID(自动编号)和MyField(文本50):
1 12"直径
2 24直径
3 36直径
第二个标准,使用双引号作为分隔符失败
如果tblTest.MyField被索引。但如果删除索引
,它会成功运行。任何人都可以从FindFirst复制或解释这种意外行为
>>Using DAO 3.6 on an Access 2002 database, I''m getting unexpected
results with the FindFirst method. Here''s the simple code to test:
Public Sub FindIt()
Dim db As Database, rs As Recordset
Dim sCriteria As String
Set db = DBEngine.Workspaces(0).Databases(0)
Set rs = db.OpenRecordset("tblTest", dbOpenDynaset)
''sCriteria = "MyField = ''24"" Diameter''" ''<-- Works
sCriteria = "MyField = ""24"""" Diameter""" ''<-- Fails
rs.FindFirst sCriteria
Debug.Print sCriteria
Debug.Print "rs.NoMatch = " & rs.NoMatch
End Sub
And the immediate window output:
MyField = ''24" Diameter''
rs.NoMatch = False
MyField = "24"" Diameter"
rs.NoMatch = True
tblTest has fields ID (autonumber) and MyField (text 50):
1 12" Diameter
2 24" Diameter
3 36" Diameter
The second criteria, which uses double-quotes as the delimiter fails
if tblTest.MyField is indexed. But it works successfully if the index
is removed. Can anyone duplicate or explain this unexpected behavior
>>
>>from FindFirst?
>>
Rick Collard
www.msc-lims.com
任何人都可以花几分钟时间来复制问题? TIA
Can anyone spare a few minutes to duplicate the problem? TIA
我试过
sCriteria =" TestFld =''" &安培; " 24英寸;"直径QUOT; &安培; "''"
在NoMatch上出现错误
起床和去
http://www.***.com/watch?v=6HxNGyE3zng
>
Rick Collard
www.msc-lims.com
2008年5月23日星期五10:26:32 -0700,沙拉< oi * @醋。 comwrote:
On Fri, 23 May 2008 10:26:32 -0700, Salad <oi*@vinegar.comwrote:
>
我试过了
sCriteria =" TestFld =''" &安培; " 24英寸;"直径QUOT; &安培; ''"
它在NoMatch上出现了错误
起床去吧
http://www.***.com/watch?v=6HxNGyE3zng
沙拉,
感谢您的测试。是的,该语法正常工作,因为
单引号分隔符不在搜索字符串中。你可以尝试
问题语法:
sCriteria =" TestFld ="" 24""""直径"
以上是有效的语法,但是如果
TestFld被编入索引,则无法找到匹配项。如果NoMatch为True则移除索引并查看是否
NoMatch现在为假。
Rick Collard
www.msc-lims.com