睡觉前提一个想了一天的VB问题,在线等答案!!

来源:百度知道 编辑:UC知道 时间:2024/09/25 19:21:23
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 rs_login.EOF = True Then
MsgBox "没有这个用户,请重输入!", vbOKOnly + vbExclamation, ""
Text1.Text = ""
Text2.Text = ""

Text1.SetFocus
Else
username = Text1.Text
为什么rs_login.EOF = True不成立的时候,用户名就等于text1.text呢???
我的一条记录里面不是既有用户名也有密码不 ,难道我哪个查询指针在记录里面,就说明....username = Text1.Text 吗???
想了

rs_login.EOF 判断返回的记录集rs里是否有记录,没有返回True,有则反之
sql = "select * from 用户表 where user_ID='" & Trim(Text1.Text) & "'"
rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
用Sql语句找用户表有没有Text1.Text的用户名,没有的化会返回一个空的记录集,
rs_login.EOF = True不成立的时候
代码会运行到username = Text1.Text
而不是你预想的MsgBox

rs_login.EOF = True
说明rs_login 里面存在记录,

这个记录是通过查找(select * from 用户表 where user_ID='" & Trim(Text1.Text) & "'" ) 用户名为 Text1.Text 的出来的。

查找数据库里面用户名为 Text1.Text 的记录,如果存在了,
说明Text1.Text指定的用户存在。

username = Text1.Text 表示就是使用这个用户了,Text1.Text 是前面证实过数据库里面有记录的,所以这里就用这个用户了。下面应该还有其他处理的,你发的代码不完整,就不说了