关于recordset.find方法

lesonly 2006-06-01 09:45:34
Dim pn As String
pn = Form1.TreeView1.SelectedItem.Text
rec.Open "pinfo", con, adOpenKeyset, adLockOptimistic 'rec为recordset对象
rec.MoveFirst
rec.Find "pname = 'pn'", , , 1
If Not rec.EOF Then
Text1.Text = rec("pname")
Text1.SetFocus
End If
请高手帮我看一下为什么找不到该记录呢 我确定该记录一定存在数据库中!
每次调试的时候都是不走if 真是郁闷死了 我错在哪了呢?
...全文
209 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
feiyun0112 2007-01-22
rec.Filter "pname = 'pn'"

*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
  • 打赏
  • 举报
回复
上官云峰 2007-01-22
为什么要用到rec.Find 呢
Dim pn As String
pn = Form1.TreeView1.SelectedItem.Text
strsql="select * from pinfo where pname = 'pn'"
rec.Open strsql, con, adOpenKeyset, adLockOptimistic 'rec为recordset对象
if rec.recordcount>0 ‘有记录
Text1.Text = rec("pname")
Text1.SetFocus
end if


  • 打赏
  • 举报
回复
NewQger 2007-01-22
既然前边还有代码,从前边研究一下.很奔的方法,find前边作个循环 第一条到最后一条,然后跟踪 你要取的字段的值只否在记录集了啊.
  • 打赏
  • 举报
回复
kssys 2006-06-01
rec.Find "pname = 'pn'", , , 1

->
rec.Find "pname = 'pn'"
  • 打赏
  • 举报
回复
lesonly 2006-06-01
就是那个地方设的断点 我现在就是不明白为什么找不到该记录
  • 打赏
  • 举报
回复
kssys 2006-06-01
楼主在rec.Open "pinfo"设个断点。

然后按F8,看它的运行顺序。
  • 打赏
  • 举报
回复
lesonly 2006-06-01
谢谢了
1 "pinfo"是表的名称
2 rec.movefirst我确定必有记录,这个过程是前一个过程后续(前一过程向数据库里添加记录)
  • 打赏
  • 举报
回复
kssys 2006-06-01
分析了这段代码:
1)rec.Open "pinfo"..... 楼主的Pinfo是存储过程吗?
2)rec.MoveFirst 存在潜在的错误,如果没有记录将出错。应加上if rec.recordCount<>0 then
3)不走if 可能是之前的已出现错误,跳到错误处理了:)
  • 打赏
  • 举报
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-06-01 09:45
社区公告
暂无公告