VB问题:实时错误'3021',BOF或EOF中有一个是"真",或者当前的记录以被删除,所需的操作要求一个当前的记录

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:29:24
我是VB菜鸟,请高手帮忙看看下面代码,错在哪里,键入用户名和密码后就出现上面的错误提示
Private Sub cmdOK_Click()
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.ConnectionString = "provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=false;Initial Catalog=用户数据库;Data Sourrce=(local)"
conn.Open
rs.Open "select * from 用户表 where 用户名='" + txtUserName + " 'and 密码=' " + txtPassword.Text + " '", conn, adOpenDynamic, adLockBatchOptimistic
If rs.EOF = True Or rs.BOF = True Then
rs.MoveFirst '在此出错
a = Trim(rs.Fields("用户名"))
b = Trim(rs.Fields("密码"))
If b = Val(Text2.Text) and a=val(text1.text) Then
人事管理系统主界面.Show
人事管理系统登录界面.Hide
ElseIf b <> Val(Text2.Text) a<>val(text1.text) Then
c = MsgBox("你的密码和用户名错误!", 0, "警告!")
End If
End If
End Sub
a,b 是全局变量
被采纳为答案,再加20分
有用户

If rs.EOF = True Or rs.BOF = True Then
rs.MoveFirst '在此出错

--

If not rs.EOF Then
rs.MoveFirst

---

有用户名也不行,---指的什么意思 还提示一样的错误吗 如果是这样 就不是用户名的问题

应该是这样

If rs.EOF = True Or rs.BOF = True Then
'这里执行出错提示代码,如“没有该用户名!”……
else
rs.MoveFirst