formstudent.frm
来自「vb数据库编程资料」· FRM 代码 · 共 424 行
FRM
424 行
VERSION 5.00
Object = "{00028C01-0000-0000-0000-000000000046}#1.0#0"; "DBGRID32.OCX"
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form frmStudent
BorderStyle = 1 'Fixed Single
Caption = "学生管理"
ClientHeight = 7185
ClientLeft = 45
ClientTop = 330
ClientWidth = 8145
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 7185
ScaleWidth = 8145
StartUpPosition = 2 '屏幕中心
Begin VB.ComboBox cmbSex
DataField = "Sex"
DataSource = "dataStudent"
Height = 300
ItemData = "FormStudent.frx":0000
Left = 2400
List = "FormStudent.frx":000A
TabIndex = 3
Text = "男"
Top = 1200
Width = 2895
End
Begin MSComCtl2.DTPicker dtpBirthday
DataField = "Birthday"
DataSource = "dataStudent"
Height = 255
Left = 2400
TabIndex = 4
Top = 1560
Width = 2895
_ExtentX = 5106
_ExtentY = 450
_Version = 393216
Format = 23724033
CurrentDate = 38011
End
Begin VB.ComboBox cmbClass
DataField = "ClassID"
DataSource = "dataStudent"
Height = 300
ItemData = "FormStudent.frx":0016
Left = 2400
List = "FormStudent.frx":0018
TabIndex = 0
Top = 120
Width = 2895
End
Begin VB.TextBox txtStudentID
DataField = "StudentID"
DataSource = "dataStudent"
Height = 270
Left = 2400
MaxLength = 8
TabIndex = 1
Top = 480
Width = 2895
End
Begin VB.TextBox txtName
DataField = "Name"
DataSource = "dataStudent"
Height = 270
Left = 2400
MaxLength = 8
TabIndex = 2
Top = 840
Width = 2895
End
Begin VB.TextBox txtNation
DataField = "Native"
DataSource = "dataStudent"
Height = 270
Left = 2400
MaxLength = 16
TabIndex = 5
Top = 1920
Width = 2895
End
Begin VB.Data dataValid
Caption = "验证"
Connect = "Access"
DatabaseName = "E:\Book Edit\VisualBasic数据库编程教程\ch12\Student.mdb"
DefaultCursorType= 0 '缺省游标
DefaultType = 2 '使用 ODBC
Exclusive = 0 'False
Height = 405
Left = 5520
Options = 0
ReadOnly = 0 'False
RecordsetType = 1 'Dynaset
RecordSource = "Student"
Top = 2040
Visible = 0 'False
Width = 2535
End
Begin VB.CommandButton cmdDelete
Caption = "删除(&D)"
Height = 375
Left = 5520
TabIndex = 7
Top = 600
Width = 1215
End
Begin VB.Data dataStudent
Caption = "学生信息"
Connect = "Access"
DatabaseName = "E:\Book Edit\VisualBasic数据库编程教程\ch12\Student.mdb"
DefaultCursorType= 0 '缺省游标
DefaultType = 2 '使用 ODBC
Exclusive = 0 'False
Height = 435
Left = 5520
Options = 0
ReadOnly = 0 'False
RecordsetType = 0 'Table
RecordSource = "Student"
Top = 1560
Width = 2535
End
Begin VB.CommandButton cmdAdd
Caption = "添加(&A)"
Height = 375
Left = 5520
TabIndex = 6
Top = 120
Width = 1215
End
Begin VB.CommandButton cmdQuit
Caption = "退出(&Q)"
Height = 375
Left = 5520
TabIndex = 8
Top = 1080
Width = 1215
End
Begin VB.CommandButton cmdSave
Caption = "保存(&S)"
Height = 375
Left = 6840
TabIndex = 10
Top = 600
Width = 1215
End
Begin VB.CommandButton cmdModify
Caption = "修改(&M)"
Height = 375
Left = 6840
TabIndex = 9
Top = 120
Width = 1215
End
Begin VB.CommandButton cmdCancel
Cancel = -1 'True
Caption = "放弃(&C)"
Height = 375
Left = 6840
TabIndex = 11
Top = 1080
Width = 1215
End
Begin MSDBGrid.DBGrid dbgStudent
Bindings = "FormStudent.frx":001A
Height = 4695
Left = 120
OleObjectBlob = "FormStudent.frx":0034
TabIndex = 12
Top = 2400
Width = 7935
End
Begin VB.Label Label7
Alignment = 1 'Right Justify
Caption = "性别"
Height = 255
Left = 1320
TabIndex = 18
Top = 1200
Width = 975
End
Begin VB.Label Label6
Alignment = 1 'Right Justify
Caption = "出生日期"
Height = 255
Left = 1320
TabIndex = 17
Top = 1560
Width = 975
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Caption = "学号"
Height = 255
Left = 1320
TabIndex = 16
Top = 480
Width = 975
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "姓名"
Height = 255
Left = 1320
TabIndex = 15
Top = 840
Width = 975
End
Begin VB.Label Label3
Alignment = 1 'Right Justify
Caption = "籍贯"
Height = 255
Left = 1320
TabIndex = 14
Top = 1920
Width = 975
End
Begin VB.Label Label4
Alignment = 1 'Right Justify
Caption = "所在班级"
Height = 255
Left = 1320
TabIndex = 13
Top = 195
Width = 975
End
End
Attribute VB_Name = "frmStudent"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim BookMK
Dim InEditMode As Boolean
Private Sub cmbClass_Change()
If txtStudentID.Text = "" Then
txtStudentID.Text = cmbClass.Text
End If
End Sub
Private Sub cmdAdd_Click()
If dataStudent.Recordset.RecordCount > 0 Then
BookMK = dataStudent.Recordset.Bookmark
Else
BookMK = Null
End If
dataStudent.Recordset.AddNew
InEditMode = True
ToggleEditMode
dtpBirthday.Year = Year(Date) - 18
cmbClass.ListIndex = 0
cmbSex.ListIndex = 0
txtStudentID.Text = cmbClass.Text
End Sub
Private Sub cmdCancel_Click()
dataStudent.UpdateControls
InEditMode = False
ToggleEditMode
If Len(BookMK) > 0 Then
dataStudent.Recordset.Bookmark = BookMK
ElseIf dataStudent.Recordset.RecordCount > 0 Then
dataStudent.Recordset.MoveFirst
End If
End Sub
Private Sub cmdDelete_Click()
Dim Msg$
If dataStudent.Recordset.EOF Then Exit Sub
dataValid.RecordSource = "SELECT StudentID FROM Change WHERE StudentID='" & dataStudent.Recordset("StudentID") & "'"
dataValid.Refresh
If Not dataValid.Recordset.EOF Then
MsgBox "该生还存在学籍变更记录,所以不能删除该生!"
Exit Sub
End If
dataValid.RecordSource = "SELECT StudentID FROM Reward WHERE StudentID='" & dataStudent.Recordset("StudentID") & "'"
dataValid.Refresh
If Not dataValid.Recordset.EOF Then
MsgBox "该生还存在奖励记录,所以不能删除该生!"
Exit Sub
End If
dataValid.RecordSource = "SELECT StudentID FROM Punish WHERE StudentID='" & dataStudent.Recordset("StudentID") & "'"
dataValid.Refresh
If Not dataValid.Recordset.EOF Then
MsgBox "该生还存在处罚变更记录,所以不能删除该生!"
Exit Sub
End If
Msg = MsgBox("确定要删除记录吗?", vbYesNo)
If Msg = vbYes Then
dataStudent.Recordset.Delete
dataStudent.Recordset.MoveNext
If dataStudent.Recordset.EOF And (dataStudent.Recordset.RecordCount > 0) Then
dataStudent.Recordset.MoveLast
End If
End If
End Sub
Private Sub cmdModify_Click()
If dataStudent.Recordset.EOF Then Exit Sub
BookMK = dataStudent.Recordset.Bookmark
dataStudent.Recordset.Edit
InEditMode = True
ToggleEditMode
txtStudentID.Locked = True
End Sub
Private Sub cmdQuit_Click()
Unload Me
End Sub
Private Sub cmdSave_Click()
txtStudentID.Text = Replace(Trim(txtStudentID.Text), "'", "")
txtName.Text = Replace(Trim(txtName.Text), "'", "")
txtNation.Text = Replace(Trim(txtNation.Text), "'", "")
If cmbClass.ListIndex < 0 Then
MsgBox "所在班级编号输入不正确", , "输入错误"
cmbClass.SetFocus
Exit Sub
ElseIf cmbSex.ListIndex < 0 Then
MsgBox "请选择性别!", , "输入错误"
cmbSex.SetFocus
Exit Sub
ElseIf dtpBirthday.Value = "" Then
MsgBox "请选择一个出生日期!", , "输入错误"
dtpBirthday.SetFocus
Exit Sub
ElseIf txtStudentID.Text = "" Then
MsgBox "学号不能为空!", , "输入错误"
txtStudentID.SetFocus
Exit Sub
ElseIf txtName.Text = "" Then
MsgBox "姓名不能为空!", , "输入错误"
txtName.SetFocus
Exit Sub
End If
If Not txtStudentID.Locked Then
dataValid.RecordSource = "SELECT * FROM Student WHERE StudentID='" & txtStudentID.Text & "'"
dataValid.Refresh
If Not dataValid.Recordset.EOF Then
Msg = "学号[" & txtStudentID.Text & "(" & dataValid.Recordset("Name") & ")" & "]已经存在,不能重复。"
MsgBox Msg
txtStudentID.SetFocus
Exit Sub
End If
End If
dataStudent.UpdateRecord
InEditMode = False
ToggleEditMode
If Len(BookMK) > 0 Then
dataStudent.Recordset.Bookmark = BookMK
ElseIf dataStudent.Recordset.RecordCount > 0 Then
dataStudent.Recordset.MoveFirst
End If
End Sub
Private Sub Form_Load()
dataStudent.DatabaseName = App.Path & "\Student.mdb"
dataValid.DatabaseName = App.Path & "\Student.mdb"
dataValid.Visible = False
FullClass
InEditMode = False
ToggleEditMode
If cmbClass.ListCount < 1 Then
MsgBox "目前班级库为空,请先进行班级管理,然后再进行学生管理!"
cmdAdd.Enabled = False
End If
End Sub
Private Sub ToggleEditMode()
txtStudentID.Locked = Not InEditMode
txtName.Locked = Not InEditMode
txtNation.Locked = Not InEditMode
cmbClass.Enabled = InEditMode
cmbSex.Enabled = InEditMode
dtpBirthday.Enabled = InEditMode
cmdAdd.Enabled = Not InEditMode
cmdDelete.Enabled = Not InEditMode
cmdQuit.Enabled = Not InEditMode
cmdModify.Enabled = Not InEditMode
dbgStudent.Enabled = Not InEditMode
dataStudent.Enabled = Not InEditMode
cmdSave.Enabled = InEditMode
cmdCancel.Enabled = InEditMode
End Sub
Private Sub FullClass()
dataValid.RecordSource = "SELECT * FROM Class"
dataValid.Refresh
cmbClass.Clear
While Not dataValid.Recordset.EOF
cmbClass.AddItem dataValid.Recordset("ClassID")
dataValid.Recordset.MoveNext
Wend
End Sub
Private Sub Form_Unload(Cancel As Integer)
If InEditMode Then
dataStudent.UpdateControls
InEditMode = False
ToggleEditMode
End If
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?