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

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

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

比如以下组合搜索就出错
Adodc1.Recordset.Find "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#"
而单一的即可:
Adodc1.Recordset.Find "编号='" & bpbh & "'"
或Adodc1.Recordset.Find "调查时间=#" & dcsj & "#"
均正常
...全文
392 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
adsl1478963 2012-01-21
  • 打赏
  • 举报
回复
我也遇见这个问题了 不过我解决了不知道你是不是要这样
strquery= "select * from 表名 where 编号 >= " & Trim(Text1.Text) & " and 调查时间 <= " & Trim(Text2.Text) & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strquery
Adodc1.Refresh
gicad 2011-10-12
  • 打赏
  • 举报
回复
有用过或类似的,指点一二
gicad 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chinaboyzyq 的回复:]
http://topic.csdn.net/t/20011231/13/452469.html
[/Quote]

这个是问题依旧没有解决的
gicad 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 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……
[/Quote]

还是有错误:实时错误13,,类型不匹配
bk=MyFind(Adodc1.Recordset, "编号='" & bpbh & "'" And "调查时间=#" & dcsj & "#")
就这一句出现错误
worldy 2011-10-11
  • 打赏
  • 举报
回复
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
贝隆 2011-10-11
  • 打赏
  • 举报
回复

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧