请各位高手帮我一下,这段代码要怎么改,详细点,谢谢!
Option Explicit
Public conn As New ADODB.Connection
Public Userid As String
Dim cs As Integer '登录次数
Dim pwd As String
Dim rsUser As ADODB.RecordsetPrivate Sub Combo1_Click()
Dim sql As String
Set rsUser = New ADODB.Recordset
If rsUser.State = 1 Then rsUser.Close
sql = "select Userpwd from Userinfo where Userid='combo1.text'"
rsUser.Open sql, conn, adOpenStatic, adLockPessimistic
Text1.SetFocus
pwd = Trim(rsUser.Fields("Userpwd"))
调试时,这句标记为黄色!
End SubPrivate Sub Command1_Click()
If Combo1.Text = "" Then
MsgBox "请选择用户名!", , "登录"
Combo1.SetFocus
Exit Sub
End If
If Text1.Text = "" Then
MsgBox "请输入密码!", , "登录"
Text1.SetFocus
Exit Sub
End If
If Text1.Text = pwd Then
Userid = Combo1.Text
Me.Hide
Form2.Show
Else
MsgBox "密码无效,请重试!", , "登录"
Text1.SetFocus
cs = cs + 1
If cs = 3 Then
Unload Me
End If
End If
End SubPrivate Sub Form_Load()
Dim sql As String
Set rsUser = New ADODB.Recordset
conn.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source=human resource.mdb"
conn.Open
sql = "select Userid from Userinfo"
rsUser.Open sql, conn, adOpenDynamic, adLockPessimistic
Combo1.Clear
Do Until rsUser.EOF
Combo1.AddItem rsUser.Fields("Userid")
rsUser.MoveNext
Loop
cs = 0
End Sub
Option Explicit
Public conn As New ADODB.Connection
Public Userid As String
Dim cs As Integer '登录次数
Dim pwd As String
Dim rsUser As ADODB.RecordsetPrivate Sub Combo1_Click()
Dim sql As String
Set rsUser = New ADODB.Recordset
If rsUser.State = 1 Then rsUser.Close
sql = "select Userpwd from Userinfo where Userid='combo1.text'"
rsUser.Open sql, conn, adOpenStatic, adLockPessimistic
Text1.SetFocus
pwd = Trim(rsUser.Fields("Userpwd"))
调试时,这句标记为黄色!
End SubPrivate Sub Command1_Click()
If Combo1.Text = "" Then
MsgBox "请选择用户名!", , "登录"
Combo1.SetFocus
Exit Sub
End If
If Text1.Text = "" Then
MsgBox "请输入密码!", , "登录"
Text1.SetFocus
Exit Sub
End If
If Text1.Text = pwd Then
Userid = Combo1.Text
Me.Hide
Form2.Show
Else
MsgBox "密码无效,请重试!", , "登录"
Text1.SetFocus
cs = cs + 1
If cs = 3 Then
Unload Me
End If
End If
End SubPrivate Sub Form_Load()
Dim sql As String
Set rsUser = New ADODB.Recordset
conn.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data source=human resource.mdb"
conn.Open
sql = "select Userid from Userinfo"
rsUser.Open sql, conn, adOpenDynamic, adLockPessimistic
Combo1.Clear
Do Until rsUser.EOF
Combo1.AddItem rsUser.Fields("Userid")
rsUser.MoveNext
Loop
cs = 0
End Sub
=>
sql = "select Userpwd from Userinfo where Userid='" & combo1.text" & "'"
BOF 或 EOF 为 True,或者当前记录已经删除。应用程序请求的操作需要当前记录。 rsUser.Open sql, conn, adOpenDynamic, adLockPessimistic此句没有返回记录
==>
rsUser.Open sql, conn, adOpenStatic, adLockPessimistic
Text1.SetFocus
if rsuser.recordcount>0 then
pwd = Trim(iif(isnull(rsUser.Fields("Userpwd")),"",rsUser.Fields("Userpwd"))
end if
sql = "select Userpwd from Userinfo where Userid='combo1.text'"
=>
'如果数据库中Userid为文本类型
sql = "select Userpwd from Userinfo where Userid='" & combo1.text" & "'"'如果数据库中Userid为数值类型
sql = "select Userpwd from Userinfo where Userid=" & combo1.text"
rsUser.Open sql, conn, adOpenStatic, adLockPessimistic
if rsUser.recordcount>0 then
Text1.SetFocus
if not isnull(rsUser.fields("Userpwd")) then
pwd = Trim(rsUser.Fields("Userpwd"))
end if
end if
pwd = Trim(rsUser.Fields("Userpwd"))