?? frmsyslogon.frm
字號:
VERSION 5.00
Begin VB.Form SystemLogon
BorderStyle = 3 'Fixed Dialog
Caption = "自測考試系統(tǒng)用戶登錄"
ClientHeight = 2175
ClientLeft = 45
ClientTop = 330
ClientWidth = 4425
ControlBox = 0 'False
LinkTopic = "Form1"
ScaleHeight = 2175
ScaleWidth = 4425
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.TextBox txtName
Height = 315
Left = 1582
TabIndex = 0
Text = "Text1"
Top = 240
Width = 1935
End
Begin VB.TextBox txtPwd
Height = 315
IMEMode = 3 'DISABLE
Left = 1582
PasswordChar = "*"
TabIndex = 1
Text = "Text2"
Top = 645
Width = 1935
End
Begin VB.CommandButton cmdOk
Caption = "確定"
Default = -1 'True
Height = 315
Left = 1159
TabIndex = 3
Top = 1620
Width = 945
End
Begin VB.CommandButton cmdCancel
Cancel = -1 'True
Caption = "退出"
Height = 315
Left = 2321
TabIndex = 4
Top = 1620
Width = 945
End
Begin VB.ComboBox cmbType
Height = 300
ItemData = "frmSysLogon.frx":0000
Left = 1582
List = "frmSysLogon.frx":0002
Style = 2 'Dropdown List
TabIndex = 2
Top = 1080
Width = 1935
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "用戶名"
Height = 180
Left = 907
TabIndex = 7
Top = 300
Width = 540
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "口 令"
Height = 180
Left = 907
TabIndex = 6
Top = 705
Width = 540
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "身 份"
Height = 180
Left = 907
TabIndex = 5
Top = 1110
Width = 540
End
End
Attribute VB_Name = "SystemLogon"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Const MaxLogTimes As Integer = 3 '定義允許嘗試登錄的最大次數(shù)
Dim objAdmin As Recordset '用于保存管理員登錄信息
Dim objStudent As Recordset '用于保存學生登錄信息
Dim objTeacher As Recordset '用于保存教師登錄信息
Private Sub Form_Load()
'清空用戶名和口令文本框
txtName = ""
txtPwd = ""
'創(chuàng)建身份列表
cmbType.AddItem "學生"
cmbType.AddItem "閱卷教師"
cmbType.AddItem "系統(tǒng)管理員"
cmbType.ListIndex = 2 '設置默認身份
'創(chuàng)建與數(shù)據(jù)庫的聯(lián)接
Dim objCn As New Connection '定義并實例化聯(lián)接對象
With objCn '建立數(shù)據(jù)庫聯(lián)接
.Provider = "SQLOLEDB"
.ConnectionString = "User ID=sa;PWD=123;Data Source=(local);" & _
"Initial Catalog=自測考試"
.Open
End With
'訪問數(shù)據(jù)庫獲得管理員登錄信息
Set objAdmin = New Recordset '實例化objAdmin對象
With objAdmin
.CursorLocation = adUseClient '指定使用客戶端游標
.CursorType = adOpenStatic '指定使用靜態(tài)游標
.Open "SELECT * FROM 管理員", objCn '獲取管理員登錄信息
Set .ActiveConnection = Nothing '斷開與數(shù)據(jù)庫的聯(lián)接
End With
'訪問數(shù)據(jù)庫獲得學生登錄信息
Set objStudent = New Recordset '實例化objstudent對象
With objStudent
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Open "SELECT 學號,考號 FROM 學生信息", objCn '獲取學生登錄信息
Set .ActiveConnection = Nothing '斷開與數(shù)據(jù)庫的聯(lián)接
End With
'訪問數(shù)據(jù)庫獲得教師登錄信息
Set objTeacher = New Recordset '實例化objTeacher對象
With objTeacher
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Open "SELECT 姓名,口令 FROM 閱卷教師", objCn '獲取教師登錄信息
Set .ActiveConnection = Nothing '斷開與數(shù)據(jù)庫的聯(lián)接
End With
objCn.Close '關閉數(shù)據(jù)庫連接
Set objCn = Nothing '釋放數(shù)據(jù)庫連接
End Sub
Private Sub cmdCancel_Click()
'請求用戶確認是否真的退出系統(tǒng)登錄
If MsgBox("你選擇了退出系統(tǒng)登錄,退出將不能啟動管理系統(tǒng)!" & vbCrLf _
& "是否真的退出?", vbYesNo + vbQuestion, "登錄驗證") = vbYes Then
Unload Me '卸載登錄窗體
End If
End Sub
Private Sub cmdOk_Click()
'靜態(tài)常量intLogTimes用于保存用戶請求驗證的次數(shù)
Static intLogTimes As Integer
intLogTimes = intLogTimes + 1 '保存當前登錄次數(shù)
If intLogTimes > MaxLogTimes Then
'超過允許的登錄次數(shù),顯示提示信息
MsgBox "你已經(jīng)超過允許的登錄驗證次數(shù)!" & vbCr _
& "應用程序將結束!", vbCritical, "登錄驗證"
End '結束應用程序
End If
'檢驗是否輸入用戶名
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
'根據(jù)用戶身份創(chuàng)建用于檢驗用戶名和口令的合法性的Recorset對象
Dim objLog As New Recordset
Select Case cmbType
Case "學生"
Set objLog = objStudent.Clone
Case "閱卷教師"
Set objLog = objTeacher.Clone
Case "系統(tǒng)管理員"
Set objLog = objAdmin.Clone
End Select
Dim strPwdField As String
With objLog '檢驗用戶名和口令的合法性
If .RecordCount > 0 Then
.MoveFirst
Select Case cmbType
Case "學生"
.Find "學號='" & Trim(txtName) & "'"
strPwdField = "考號"
Case "閱卷教師"
.Find "姓名='" & Trim(txtName) & "'"
strPwdField = "口令"
Case "系統(tǒng)管理員"
.Find "用戶名='" & Trim(txtName) & "'"
strPwdField = "口令"
End Select
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)
CurrentUserStatus = cmbType
MsgBox "歡迎使用自測考試系統(tǒng)!", vbInformation, "登錄成功"
Unload Me '關閉登錄窗體
mdiSystemMain.Show '顯示系統(tǒng)主窗體
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 + -