大家帮我看下这段代码,难道非要用eof判断吗??

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:21:56
代码是:
Private Sub cmdOK_Click()

Dim sql As String
Dim rs_login As New ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "provider=Microsoft.Jet.OLEDB.4.0; data source=" & App.Path & "\database.mdb"

If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Then
MsgBox "用户名或密码不能为空,请重新输入!"
Text2.Text = ""

Text1.SetFocus
Else
sql = "select * from 用户表 where user_ID='" & Trim(Text1.Text) & "'"
rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
If Trim(rs_login.Fields(0)) <> Trim(Text1.Text) Then
MsgBox "用户名错误,请重新输入"
Text2.Text = ""
Text1.Text = ""
Text1.SetFocus
Else
username = Text1.Text

If Trim(rs_login.Fields(1)) = Trim(Text2.Text) Then

Unload Me
frmMain.S

If Trim(rs_login.Fields(0)) <> Trim(Text1.Text) Then
这句,如果记录错误的话,记录集是空的,rs_login.Fields(0)就找不到值,结果出错。

必须在If Trim(rs_login.Fields(0)) <> Trim(Text1.Text) Then 之前判断rs_login.eof是否为空.因为rs_login可能是没有记录的空值,你提取其第一字段的值时当然报错。
判断一下就行了,EOF,BOF都行