?? frmclass.frm
字號:
VERSION 5.00
Begin VB.Form Class
BorderStyle = 1 'Fixed Single
Caption = "班級信息管理"
ClientHeight = 1980
ClientLeft = 45
ClientTop = 330
ClientWidth = 4695
LinkTopic = "Form1"
MaxButton = 0 'False
MDIChild = -1 'True
MinButton = 0 'False
ScaleHeight = 1980
ScaleWidth = 4695
Begin VB.TextBox txtNum
Height = 270
IMEMode = 2 'OFF
Left = 1740
MaxLength = 8
TabIndex = 1
Top = 608
Width = 2010
End
Begin VB.CommandButton cmdSave
Caption = "保存"
Height = 300
Left = 2355
TabIndex = 4
Top = 1073
Width = 735
End
Begin VB.CommandButton cmdExit
Cancel = -1 'True
Caption = "退出"
Height = 315
Left = 3120
TabIndex = 5
Top = 1066
Width = 735
End
Begin VB.CommandButton cmdDelete
Caption = "刪除"
Height = 300
Left = 1605
TabIndex = 3
Top = 1073
Width = 735
End
Begin VB.CommandButton cmdAdd
Caption = "添加"
Height = 300
Left = 840
TabIndex = 2
Top = 1073
Width = 735
End
Begin VB.TextBox txtName
Height = 270
IMEMode = 1 'ON
Left = 1740
MaxLength = 20
TabIndex = 0
Top = 248
Width = 2010
End
Begin VB.PictureBox picNavigation
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 360
Left = 1005
ScaleHeight = 360
ScaleWidth = 2685
TabIndex = 10
Top = 1373
Width = 2685
Begin VB.CommandButton cmdMove
Height = 300
Index = 1
Left = 360
Picture = "frmClass.frx":0000
Style = 1 'Graphical
TabIndex = 7
Top = 15
Width = 345
End
Begin VB.CommandButton cmdMove
Height = 300
Index = 0
Left = 30
Picture = "frmClass.frx":0045
Style = 1 'Graphical
TabIndex = 6
Top = 15
Width = 345
End
Begin VB.CommandButton cmdMove
Height = 300
Index = 3
Left = 2280
Picture = "frmClass.frx":0092
Style = 1 'Graphical
TabIndex = 9
Top = 15
Width = 345
End
Begin VB.CommandButton cmdMove
Height = 300
Index = 2
Left = 1950
Picture = "frmClass.frx":00E1
Style = 1 'Graphical
TabIndex = 8
Top = 15
Width = 345
End
Begin VB.TextBox txtNews
Height = 300
Left = 690
Locked = -1 'True
TabIndex = 11
TabStop = 0 'False
Top = 15
Width = 1275
End
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "班級編號"
Height = 180
Left = 930
Top = 668
Width = 720
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "班級名稱"
Height = 180
Left = 930
TabIndex = 12
Top = 278
Width = 720
End
End
Attribute VB_Name = "Class"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim isAdding As Boolean '定義操作狀態標志
Dim objGrade As Recordset '用于保存班級信息記錄
Dim objCn As Connection '用于建立數據庫聯接
Private Sub cmdExit_Click()
Unload Me '關閉班級信息管理窗體
End Sub
Private Sub Form_Load()
'建立數據庫聯接
Set objCn = New Connection '實例化聯接對象
With objCn '建立數據庫聯接
.Provider = "SQLOLEDB"
.ConnectionString = "User ID=sa;PWD=123;Data Source=(local);" & _
"Initial Catalog=自測考試"
.Open
End With
'獲取班級信息記錄
Set objGrade = New Recordset '實例化objGrade對象
With objGrade
Set .ActiveConnection = objCn '設置數據庫聯接
.CursorLocation = adUseClient '指定使用客戶端游標
.CursorType = adOpenStatic '指定使用靜態游標
.LockType = adLockOptimistic
.Open "SELECT * FROM 班級信息" '獲取班級信息記錄
End With
'觸發按鈕單擊事件,顯示第一個記錄
cmdMove(0).Value = True
End Sub
Private Sub cmdMove_Click(Index As Integer)
With objGrade
Select Case Index '切換當前記錄
Case 0 '使第一個記錄成為當前記錄
If .RecordCount > 0 And Not .BOF Then .MoveFirst
Case 1 '使上一個記錄成為當前記錄
If .RecordCount > 0 And Not .BOF Then
.MovePrevious
If .BOF Then .MoveFirst
End If
Case 2 '使下一個記錄成為當前記錄
If .RecordCount > 0 And Not .EOF Then
.MoveNext
If .EOF Then .MoveLast
End If
Case 3 '使最后一個記錄成為當前記錄
If .RecordCount > 0 And Not .EOF Then .MoveLast
End Select
If .RecordCount < 1 Then
txtNews = "記錄:無" '顯示無記錄提示
txtNum = ""
txtName = ""
Else
'顯示當前記錄數據
ShowData
End If
End With
If isAdding Then isAdding = False
End Sub
Private Sub cmdAdd_Click()
txtNews = "添加新記錄"
txtNum = ""
txtName = ""
isAdding = True
End Sub
Private Sub cmdDelete_Click()
'根據是否處于添加記錄狀態執行不同的操作
If isAdding Then
'退出添加記錄狀態,顯示當前記錄
isAdding = False
If objGrade.RecordCount < 1 Then
txtNews = "記錄:無" '顯示無記錄提示
txtNum = ""
txtName = ""
Else
'顯示當前記錄數據
ShowData
End If
Else
If objGrade.RecordCount > 0 Then
'檢查在課程編號是否被《學生信息》表引用
'如果被使用,則不執行刪除操作
Dim objTemp As New Recordset
With objTemp
Set .ActiveConnection = objCn '設置數據庫聯接
.CursorLocation = adUseClient '指定使用客戶端游標
.CursorType = adOpenStatic '指定使用靜態游標
'檢查課程編號是否被《學生信息》表引用
.Open "SELECT TOP 1 * FROM 學生信息 WHERE 班級='" & Trim(txtNum) & "'"
If .RecordCount > 0 Then
MsgBox "編號被《學生信息》表使用,不能刪除當前記錄!", vbInformation, "班級信息管理"
.Close '關閉對象
Set objTemp = Nothing '釋放對象
Exit Sub
End If
.Close '關閉對象
End With
Set objTemp = Nothing '釋放對象
'可以刪除,請求確認執行刪除操作
If MsgBox("是否刪除當前記錄?", vbYesNo + vbQuestion, "班級信息管理") = vbYes Then
'執行刪除當前記錄操作
objGrade.Delete
'顯示下一記錄數據
cmdMove(2).Value = True
Else
'顯示當前記錄數據
ShowData
End If
End If
End If
End Sub
Private Sub cmdSave_Click()
'在當前表中無數據和不是添加記錄時,不執行保存操作
If Not isAdding And objGrade.RecordCount < 1 Then Exit Sub
'獲得當前記錄數據
Dim strNum$, strName$
strNum = Trim(txtNum)
strName = Trim(txtName)
'檢驗是否輸入班級名稱
If strName = "" Then
MsgBox "班級名稱不能為空!", vbCritical, "班級信息管理"
txtName.SetFocus
txtName = ""
Exit Sub
End If
'檢驗是否輸入班級編號
If Len(strNum) <> 8 Then
MsgBox "班級編號必須為8位數字!", vbCritical, "班級信息管理"
txtNum.SetFocus
txtNum = ""
Exit Sub
End If
'在進一步保存添加的新記錄或修改的當前記錄之前,檢查班級編號是否重復
Dim objCopy As New Recordset
Set objCopy = objGrade.Clone
If objGrade.RecordCount > 0 And Not isAdding Then
objCopy.MoveFirst
objCopy.Find "編號='" & strNum & "'"
If Not objCopy.EOF And objCopy.AbsolutePosition <> objGrade.AbsolutePosition Then
MsgBox "班級編號:" & strNum & "已被使用,請使用其他編號!", _
vbCritical, "班級信息管理"
txtNum.SetFocus
txtNum.SelStart = 0
txtNum.SelLength = Len(txtNum)
Exit Sub '班級編號重復,直接退出
End If
End If
'班級編號不重復,執行下一步保存操作
With objGrade
If isAdding Then
.AddNew '添加新記錄
Else
'保存被修改的當前記錄
If .Fields("編號") <> strNum Then
If MsgBox("修改編號將影響《學生信息》表中的相關記錄,是否繼續?", _
vbYesNo + vbQuestion, "班級信息管理") = vbNo Then
'取消修改,還原當前記錄
ShowData
Exit Sub
End If
End If
End If
'修改記錄
.Fields("編號") = strNum
.Fields("名稱") = strName
'執行更新操作
.Update
MsgBox "數據保存成功!", vbInformation, "班級信息管理"
isAdding = False
'顯示當前記錄編號和記錄總數
txtNews = "記錄:" & .AbsolutePosition & "/" & .RecordCount
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
objCn.Close '關閉數據聯接
Set objCn = Nothing '釋放數據庫聯接
Set objGrade = Nothing '釋放記錄集對象
End Sub
Private Sub txtName_KeyPress(KeyAscii As Integer)
'如果敲回車鍵,使下一控件獲得焦點
If KeyAscii = vbKeyReturn Then SendKeys "{TAB}"
End Sub
'限制編號輸入
Private Sub txtNum_KeyPress(KeyAscii As Integer)
'如果敲回車鍵,使保存按鈕獲得焦點
If KeyAscii = vbKeyReturn Then cmdSave.SetFocus
If Not (Chr(KeyAscii) Like "[0-9]" Or KeyAscii = vbKeyBack) Then
KeyAscii = 0 '輸入不是數字或退格鍵,取消輸入
End If
End Sub
'顯示objGrade當前記錄信息
Private Sub ShowData()
With objGrade
'顯示當前記錄數據
txtName = .Fields("名稱")
txtNum = .Fields("編號")
'顯示當前記錄編號和記錄總數
txtNews = "記錄:" & .AbsolutePosition & "/" & .RecordCount
End With
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -