vb用adodc.recordset.find查找记录时,找不到怎么处理? 找不到的时候,我想让它提示没有记录,并且返回?

2024-12-14 17:57:38
推荐回答(1个)
回答1:

Adodc1.Recordset.Find ("名称='" & mno & "'")
如果没有找到,此时,Adodc1.Recordset.EOF将为TRUE,此时只能前移MovePrevious或MoveFirst或MoveLast,不能再MoveNext,即只能move 一个负值,而不能move一个正值。如果再继续move p,将出错,已经到最后一条的后面了
执行以下代码可使Adodc1.Recordset.EOF为TRUE:
Adodc1.Recordset.MoveLast
Adodc1.Recordset.MoveNext

Private Sub Command9_Click()
Dim mno As String, p%
p = Adodc1.Recordset.AbsolutePosition
mno = InputBox("请输入名称", "查找窗")
Adodc1.Refresh
Adodc1.Recordset.Find ("名称='" & mno & "'")
If Trim(mno) = "" Then'应把此判断提到前面
Adodc1.Recordset.AbsolutePosition = p
Value = MsgBox("没有找到记录!", 0, "提示")
ElseIf Text1.Text = "" Then
Adodc1.Recordset.AbsolutePosition = p
Value = MsgBox("没有找到记录!", 0, "提示")
Me.Refresh

End If
可用Bookmark代替AbsolutePosition
End Sub