做登录时,采用数据库,当输入密码出错重输时,报错:对象已经打开,无法操作!
Option Explicit
Public LoginSucceeded As Boolean
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Public username As String
Public userpwd As StringPrivate Sub ButtonCancel_Click()
'设置全局变量为 false
'不提示失败的登录
LoginSucceeded = False
Unload Me
End SubPublic Sub ButtonOK_Click()
'检查正确的密码
Dim s As String
username = textName.Text
userpwd = textPassword.Text
s = "select * from admini where user_name = '" & username & "' and user_pwd = '" & userpwd & "'"
Rs.Open s, Cn
If Rs.BOF And Rs.EOF Then
MsgBox "无效的密码,请重试!", , "登录"
textPassword.SetFocus
textPassword.SelStart = 0
SendKeys "{Home}+{End}"
Else
'将代码放在这里传递
'成功到 calling 函数
'设置全局变量时最容易的
LoginSucceeded = True
Me.Hide
End If
End SubPrivate Sub Form_Load()
Dim X As String
X = "Provider=Microsoft.Jet.OLEDB.4.0;"
X = X & "Data Source=D:\data.mdb"
Cn.Open X
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set Cn = Nothing
Set Rs = Nothing
End SubPrivate Sub textPassword_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(vbCr) Then
ButtonOK_Click
End If
End Sub
Option Explicit
Public LoginSucceeded As Boolean
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Public username As String
Public userpwd As StringPrivate Sub ButtonCancel_Click()
'设置全局变量为 false
'不提示失败的登录
LoginSucceeded = False
Unload Me
End SubPublic Sub ButtonOK_Click()
'检查正确的密码
Dim s As String
username = textName.Text
userpwd = textPassword.Text
s = "select * from admini where user_name = '" & username & "' and user_pwd = '" & userpwd & "'"
Rs.Open s, Cn
If Rs.BOF And Rs.EOF Then
MsgBox "无效的密码,请重试!", , "登录"
textPassword.SetFocus
textPassword.SelStart = 0
SendKeys "{Home}+{End}"
Else
'将代码放在这里传递
'成功到 calling 函数
'设置全局变量时最容易的
LoginSucceeded = True
Me.Hide
End If
End SubPrivate Sub Form_Load()
Dim X As String
X = "Provider=Microsoft.Jet.OLEDB.4.0;"
X = X & "Data Source=D:\data.mdb"
Cn.Open X
End SubPrivate Sub Form_Unload(Cancel As Integer)
Set Cn = Nothing
Set Rs = Nothing
End SubPrivate Sub textPassword_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(vbCr) Then
ButtonOK_Click
End If
End Sub
'加入下面一段代码-----------
if Rs.state<>0 then
Rs.close
end if
'----------------------------Rs.Open s, Cn
If Rs.BOF And Rs.EOF Then
MsgBox "无效的密码,请重试!", , "登录"
textPassword.SetFocus
textPassword.SelStart = 0
SendKeys "{Home}+{End}"
Else
'将代码放在这里传递
'成功到 calling 函数
'设置全局变量时最容易的
LoginSucceeded = True
Me.Hide
End If
.......................
.....................