当前位置:编程学习 > VB >>

如何通过组合字段快速定位到Access数据库中的某一条记录?

我有一数据库,内含很多字段,想通过其中的“编号”和“调查时间”来快速定位到该记录,以便于进行修改。
注意:只要定位到该记录即可,不需要返回结果。因为一旦返回结果,再点上一条、下一条就只针对查询出来的结果了。

由于Adodc1.Recordset.Find不支持组合查询,用Seclet语句可以吗(好像Select语句多为将结果查询出来,而不是直接定位)?请熟悉Select的高手指点一下

比如以下组合搜索就出错
Adodc1.Recordset.Find "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#"
而单一的即可:
Adodc1.Recordset.Find "编号='" & bpbh & "'" 
或Adodc1.Recordset.Find  "调查时间=#" & dcsj & "#"
均正常 使用sql语句
http://download.csdn.net/detail/veron_04/1644211 http://topic.csdn.net/t/20011231/13/452469.html 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
引用 3 楼 worldy 的回复:
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.recordco……


还是有错误:实时错误13,,类型不匹配
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
就这一句出现错误
引用 2 楼 chinaboyzyq 的回复:
http://topic.csdn.net/t/20011231/13/452469.html


这个是问题依旧没有解决的 有用过或类似的,指点一二 我也遇见这个问题了 不过我解决了不知道你是不是要这样
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,