📄 frmlogon.frm
字号:
VERSION 5.00
Begin VB.Form frmLogon
BorderStyle = 1 'Fixed Single
Caption = "系统登录"
ClientHeight = 2325
ClientLeft = 45
ClientTop = 330
ClientWidth = 4185
LinkTopic = "Form2"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2325
ScaleWidth = 4185
StartUpPosition = 2 '屏幕中心
Begin VB.ComboBox cmbType
Height = 300
ItemData = "frmLogon.frx":0000
Left = 1462
List = "frmLogon.frx":0002
Style = 2 'Dropdown List
TabIndex = 2
Top = 1125
Width = 1935
End
Begin VB.CommandButton cmdCancel
Cancel = -1 'True
Caption = "取消"
Height = 315
Left = 2197
TabIndex = 4
Top = 1695
Width = 945
End
Begin VB.CommandButton cmdOk
Caption = "确定"
Default = -1 'True
Height = 315
Left = 1042
TabIndex = 3
Top = 1680
Width = 945
End
Begin VB.TextBox txtPwd
Height = 315
IMEMode = 3 'DISABLE
Left = 1462
PasswordChar = "*"
TabIndex = 1
Text = "Text2"
Top = 720
Width = 1935
End
Begin VB.TextBox txtName
Height = 315
Left = 1462
TabIndex = 0
Text = "Text1"
Top = 315
Width = 1935
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "身 份"
Height = 180
Left = 787
TabIndex = 7
Top = 1185
Width = 540
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "口 令"
Height = 180
Left = 787
TabIndex = 6
Top = 780
Width = 540
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "用户名"
Height = 180
Left = 787
TabIndex = 5
Top = 375
Width = 540
End
End
Attribute VB_Name = "frmLogon"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Const MaxLogTimes As Integer = 3 '定义允许尝试登录的最大次数
Dim objAdmin As Recordset '用于保存数据库中的管理员帐户记录
Dim objTeacher As Recordset '用于保存数据库中的教师记录
Dim objStudent As Recordset '用于保存数据库中的学生记录
Private Sub Form_Load()
'清空用户名和口令文本框
txtName = ""
txtPwd = ""
'创建身份列表
cmbType.AddItem "学生"
cmbType.AddItem "教师"
cmbType.AddItem "系统管理员"
cmbType.ListIndex = 0 '设置默认身份
'创建与数据库的联接
Dim objCn As New Connection '定义并实例化联接对象
With objCn '建立数据库联接
.Provider = "SQLOLEDB"
.ConnectionString = "User ID=sa;PWD=123;Data Source=(local);" & _
"Initial Catalog=学籍管理"
.Open
End With
'访问数据库获得管理员登录信息
Set objAdmin = New Recordset '实例化objAdmin对象
With objAdmin
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM 管理员", objCn '获取管理员登录信息
Set .ActiveConnection = Nothing '断开与数据库的联接
End With
'访问数据库获得教师登录信息
Set objTeacher = New Recordset '实例化objTeacher对象
With objTeacher
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Open "SELECT 编号,姓名 FROM 教师信息", objCn '获取教师登录信息
Set .ActiveConnection = Nothing '断开与数据库的联接
End With
'访问数据库获得学生登录信息
Set objStudent = New Recordset '实例化objStudent对象
With objStudent
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Open "SELECT 编号,姓名 FROM 学生信息", objCn '获取学生登录信息
Set .ActiveConnection = Nothing '断开与数据库的联接
End With
objCn.Close '关闭数据库连接
Set objCn = Nothing '释放数据库连接
End Sub
Private Sub cmdCancel_Click()
'请求用户确认是否真的退出系统登录
If MsgBox("你选择了退出系统登录,退出将不能启动管理系统!" & vbCrLf _
& "是否真的退出?", vbYesNo + vbQuestion, "登录验证") = vbYes Then
Unload Me '卸载登录窗体
End If
End Sub
Private Sub cmdOk_Click()
'检验是否输入用户名
If Trim(txtName) = "" Then
MsgBox "请输入用户名!", vbExclamation, "登录验证"
txtName = ""
txtName.SetFocus
Exit Sub
End If
'检验是否输入登录口令
If Trim(txtPwd) = "" Then
MsgBox "请输入登录口令!", vbExclamation, "登录验证"
txtPwd = ""
txtPwd.SetFocus
Exit Sub
End If
'静态常量intLogTimes用于保存用户请求验证的次数
Static intLogTimes As Integer
intLogTimes = intLogTimes + 1 '保存当前登录次数
If intLogTimes > MaxLogTimes Then
'超过允许的登录次数,显示提示信息
MsgBox "你已经超过允许的登录验证次数!" & vbCr _
& "应用程序将结束!", vbCritical, "登录验证"
End '结束应用程序
End If
'根据用户身份创建用于检验用户名和口令的合法性的Recorset对象
Dim objLog As New Recordset
Select Case cmbType
Case "学生"
Set objLog = objStudent.Clone
Case "教师"
Set objLog = objTeacher.Clone
Case "系统管理员"
Set objLog = objAdmin.Clone
End Select
Dim strPwdField As String
With objLog '检验用户名和口令的合法性
If .RecordCount > 0 Then
.MoveFirst
If cmbType = "系统管理员" Then
.Find "用户名='" & Trim(txtName) & "'"
strPwdField = "口令"
Else
.Find "姓名='" & Trim(txtName) & "'"
strPwdField = "编号"
End If
If .EOF Then
MsgBox "用户名输入错误!", vbCritical, "登录验证"
txtName.SetFocus
txtName.SelStart = 0
txtName.SelLength = Len(txtName)
ElseIf .Fields(strPwdField) <> Trim(txtPwd) Then
MsgBox "口令错误,请重新输入!", vbCritical, "登录验证"
txtPwd.SetFocus
txtPwd = ""
Else
'保存当前用户信息
CurrentUserName = Trim(txtName)
CurrentUserPwd = Trim(txtPwd)
CurrentUserType = cmbType
'显示登录成功信息
MsgBox "欢迎使用西华大学学籍管理系统!", vbInformation, "登录成功"
Unload Me '关闭登录窗体
frmSysMain.Show '显示系统主窗体
End If
End If
End With
Set objLog = Nothing '释放objLog对象
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set objAdmin = Nothing '释放objAdmin对象
Set objStudent = Nothing '释放objStudent对象
Set objTeacher = Nothing '释放objTeacher对象
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -