注意:只要定位到该记录即可,不需要返回结果。因为一旦返回结果,再点上一条、下一条就只针对查询出来的结果了。
由于Adodc1.Recordset.Find不支持组合查询,用Seclet语句可以吗(好像Select语句多为将结果查询出来,而不是直接定位)?请熟悉Select的高手指点一下
比如以下组合搜索就出错
Adodc1.Recordset.Find "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#"
而单一的即可:
Adodc1.Recordset.Find "编号='" & bpbh & "'"
或Adodc1.Recordset.Find "调查时间=#" & dcsj & "#"
均正常
7 个解决方案
#3
Find方法只能使用一个字段,如果要查找多个字段匹配记录,应编写一个简单函数
function MyFind(RS as adodb.recordset,Condition as string) as Variant
dim rsx as adodb.recordset
set rsx=rs.clone
rsx.filter=condition
if rsx.recordcount>0 then
MyFind=rsx.boolmark
else
MyFind=null
end if
end function
调用:
dim bk as Variant
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
if isnull(bk) then
msgbox "无匹配记录"
else
Adodc1.Recordset.bookmark=bk
end if
function MyFind(RS as adodb.recordset,Condition as string) as Variant
dim rsx as adodb.recordset
set rsx=rs.clone
rsx.filter=condition
if rsx.recordcount>0 then
MyFind=rsx.boolmark
else
MyFind=null
end if
end function
调用:
dim bk as Variant
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
if isnull(bk) then
msgbox "无匹配记录"
else
Adodc1.Recordset.bookmark=bk
end if
#4
还是有错误:实时错误13,,类型不匹配
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
就这一句出现错误
#5
这个是问题依旧没有解决的
#6
有用过或类似的,指点一二
#7
我也遇见这个问题了 不过我解决了不知道你是不是要这样
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh
#1
#2
#3
Find方法只能使用一个字段,如果要查找多个字段匹配记录,应编写一个简单函数
function MyFind(RS as adodb.recordset,Condition as string) as Variant
dim rsx as adodb.recordset
set rsx=rs.clone
rsx.filter=condition
if rsx.recordcount>0 then
MyFind=rsx.boolmark
else
MyFind=null
end if
end function
调用:
dim bk as Variant
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
if isnull(bk) then
msgbox "无匹配记录"
else
Adodc1.Recordset.bookmark=bk
end if
function MyFind(RS as adodb.recordset,Condition as string) as Variant
dim rsx as adodb.recordset
set rsx=rs.clone
rsx.filter=condition
if rsx.recordcount>0 then
MyFind=rsx.boolmark
else
MyFind=null
end if
end function
调用:
dim bk as Variant
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
if isnull(bk) then
msgbox "无匹配记录"
else
Adodc1.Recordset.bookmark=bk
end if
#4
还是有错误:实时错误13,,类型不匹配
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
就这一句出现错误
#5
这个是问题依旧没有解决的
#6
有用过或类似的,指点一二
#7
我也遇见这个问题了 不过我解决了不知道你是不是要这样
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh