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 真是郁闷死了 我错在哪了呢?

解决方案 »

  1.   

    分析了这段代码:
    1)rec.Open "pinfo"..... 楼主的Pinfo是存储过程吗?
    2)rec.MoveFirst 存在潜在的错误,如果没有记录将出错。应加上if rec.recordCount<>0 then
    3)不走if 可能是之前的已出现错误,跳到错误处理了:)
      

  2.   

    谢谢了
    1 "pinfo"是表的名称
    2 rec.movefirst我确定必有记录,这个过程是前一个过程后续(前一过程向数据库里添加记录)
      

  3.   

    楼主在rec.Open "pinfo"设个断点。然后按F8,看它的运行顺序。
      

  4.   

    rec.Find "pname = 'pn'", , , 1->
    rec.Find "pname = 'pn'"
      

  5.   

    既然前边还有代码,从前边研究一下.很奔的方法,find前边作个循环 第一条到最后一条,然后跟踪 你要取的字段的值只否在记录集了啊.
      

  6.   

    为什么要用到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
      

  7.   

    rec.Filter "pname = 'pn'"
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html