VB6.0中的ADODC 控件当find不到匹配记录时如何处理

我用的 “ On Error GoTo TZ查询出错”方法来处理的。
如何我想换种写法怎么写?
能不能不用 On Error GoTo 方法
就是 当查询的到的时候,执行填写命令
当查不到的时候怎么办?

原代码
Private Sub Command依ID查询_Click()
On Error GoTo TZ查询出错
Adodc人事档案.Refresh '刷新一次,否则,在第一次找到之后,再FIND就会从之前找到的位置往后找。
Adodc人事档案.Recordset.Find ("ID='" & Text依ID查询.Text & "'")
Text编号.Text = Adodc人事档案.Recordset.Fields("ID")
Text姓名.Text = Adodc人事档案.Recordset.Fields("姓名")
Text年龄.Text = Adodc人事档案.Recordset.Fields("年龄")
Text部门.Text = Adodc人事档案.Recordset.Fields("部门")
Text职位.Text = Adodc人事档案.Recordset.Fields("职位")
Exit Sub
TZ查询出错:
MsgBox "未找到该ID编号的职工"
End Sub
=========================================
以下两种方式都不行。
If Adodc人事档案.Recordset.Find("ID='" & Text依ID查询.Text & "'") Then或If Adodc人事档案.Recordset.Find("ID='" & Text依ID查询.Text & "'") =TRUE Then

1、使用find方法时,要先设置recordSet当前所在行的位置,例如用MoveFirst方法,或者 使用BookMark去设置
2、find()是个方法不是个函数,所以它不返回任何值。
   调用后如果找到匹配的数据,则将游标移到匹配行,
   如果没有匹配的,就移动到rs的末尾,此时rs.EOF为true。
   使用举例:
   Adodc人事档案.MoveFirst
   Adodc人事档案.Recordset.Find ("ID='" & Text依ID查询.Text & "'") 
   if not Adodc人事档案.EOF then
       Text编号.Text = Adodc人事档案.Recordset.Fields("ID")
       Text姓名.Text = Adodc人事档案.Recordset.Fields("姓名")
   else
       MsgBox "未找到该ID编号的职工"
   end if

追问

请提供你的联系方式,我传文件给你,谢谢。


追答

if not Adodc人事档案.EOF then
Sorry,这里写错了 是if not Adodc人事档案.ReordSet.EOF then

试试...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-02
    Adodc人事档案.Refresh
    If Not Adodc人事档案.Recordset.EOF Then  '使用EOF方法检测记录集是否到最后记录的后面比较合理
    Text编号.Text = Adodc人事档案.Recordset.Fields("ID")
    Text姓名.Text = Adodc人事档案.Recordset.Fields("姓名")
    Text年龄.Text = Adodc人事档案.Recordset.Fields("年龄")
    Text部门.Text = Adodc人事档案.Recordset.Fields("部门")
    Text职位.Text = Adodc人事档案.Recordset.Fields("职位")
    Else   '如果检测记录集已经到最后记录的后面,会提示
    MsgBox "未找到该ID编号的职工"
    End If

追问

你好像落掉了一行代码。不过还是谢谢你了。
Adodc人事档案.Recordset.Find ("ID='" & Text依ID查询.Text & "'")

相似回答