📄 c课程分配.frm
字号:
VERSION 5.00
Begin VB.Form C课程分配
Caption = "课程分配"
ClientHeight = 3990
ClientLeft = 60
ClientTop = 345
ClientWidth = 8220
LinkTopic = "Form1"
ScaleHeight = 3990
ScaleWidth = 8220
StartUpPosition = 3 'Windows Default
Begin VB.Frame Frame1
Caption = "课程分配"
Height = 3855
Index = 0
Left = 120
TabIndex = 0
Top = 120
Width = 8055
Begin VB.CommandButton CmdExit
Caption = "退出"
Height = 375
Left = 5760
TabIndex = 14
Top = 3240
Width = 975
End
Begin VB.CommandButton CmdDivide
Caption = "分配"
Height = 375
Left = 4680
TabIndex = 13
Top = 3240
Width = 1095
End
Begin VB.TextBox txtItem
Height = 1215
Index = 1
Left = 1080
MultiLine = -1 'True
TabIndex = 12
Top = 1800
Width = 5655
End
Begin VB.TextBox txtItem
Height = 375
Index = 0
Left = 1080
TabIndex = 11
Top = 1320
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 3
Left = 4440
TabIndex = 8
Top = 840
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 2
Left = 1080
TabIndex = 3
Top = 840
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 0
Left = 1080
TabIndex = 2
Top = 360
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 1
Left = 4440
TabIndex = 1
Top = 360
Width = 2295
End
Begin VB.Label Label3
Caption = "备注:"
Height = 255
Left = 360
TabIndex = 10
Top = 2040
Width = 735
End
Begin VB.Label Label2
Caption = "任课教师:"
Height = 375
Left = 120
TabIndex = 9
Top = 1320
Width = 1095
End
Begin VB.Label LblCourse
Caption = "全系课程:"
Height = 375
Index = 1
Left = 3480
TabIndex = 7
Top = 840
Width = 1335
End
Begin VB.Label Label1
Caption = "分配班级:"
Height = 255
Left = 120
TabIndex = 6
Top = 720
Width = 975
End
Begin VB.Label Label8
Caption = "学院:"
Height = 255
Index = 0
Left = 480
TabIndex = 5
Top = 360
Width = 735
End
Begin VB.Label Label9
Caption = "系:"
Height = 240
Left = 4080
TabIndex = 4
Top = 360
Width = 495
End
End
End
Attribute VB_Name = "C课程分配"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim SQL As String
Dim msg As String
Private Sub Form_Load()
'首先需要初始化学院ComboBox、系ComboBox、分配班级ComboBox和全系课程ComboBox
Dim rst As ADODB.Recordset
Dim strItem As String
'初始化学院ComboBox
SQL = " select 院代码,院名称 from 院信息表 order by 院代码"
Set rst = SelectSQL(SQL, msg)
If rst.RecordCount > 0 Then '如果存在院信息
Do While Not rst.EOF
strItem = rst.Fields(0) & " " & rst.Fields(1)
CboQuery(0).AddItem (strItem)
rst.MoveNext
Loop
rst.Close
CboQuery(0).ListIndex = 0
Else '如果不存在院信息
MsgBox ("请先创建院信息!") '如果没有院信息不能使用
CboQuery(0).Enabled = False
CboQuery(1).Enabled = False
CboQuery(2).Enabled = False
Exit Sub
End If
Call SelectData(0) '初始化系ComboBox
If CboQuery(1).ListCount > 0 Then
Call SelectData(1) '初始化班级ComboBox
End If
End Sub
Private Sub SelectData(Index As Integer)
'初始化系ComboBox,班级ComboBox
Dim rst As ADODB.Recordset
Dim strItem As String
If Index = 0 Then '如果是选择院,初始化系ComboBox
SQL = " select 系代码,系名称 from 系信息表 where 院代码='"
SQL = SQL & Left(Trim(CboQuery(0).Text), 2) & "' order by 系代码"
Set rst = SelectSQL(SQL, msg)
CboQuery(1).Clear
If rst.RecordCount > 0 Then '如果存在系信息
Do While Not rst.EOF
strItem = rst.Fields(0) & " " & rst.Fields(1)
CboQuery(1).AddItem (strItem)
rst.MoveNext
Loop
rst.Close
CboQuery(1).ListIndex = 0
Call FixData '在comboBox载入课程列表
Else '如果不存在系信息,退出过程
Exit Sub
End If
ElseIf Index = 1 Then '如果是选择系,初始化班级ComboBox
SQL = " select 班号,班级名称 from 班级信息表 where 系代码='"
SQL = SQL & Left(Trim(CboQuery(1).Text), 4) & "' order by 班号"
Set rst = SelectSQL(SQL, msg)
CboQuery(2).Clear
If rst.RecordCount > 0 Then '如果存在班级信息
Do While Not rst.EOF
strItem = rst.Fields(0) & " " & rst.Fields(1)
CboQuery(2).AddItem (strItem)
rst.MoveNext
Loop
rst.Close
CboQuery(2).ListIndex = 0
Call FixData '在comboBox载入课程列表
Else '如果不存在班级信息,退出过程
Exit Sub
End If
End If
End Sub
Private Sub FixData()
'在ComboBox载入课程列表
Dim rst As ADODB.Recordset
Dim strItem As String
SQL = " select 课程号,课程名称 from 课程信息表 where 系代码='"
SQL = SQL & Left(Trim(CboQuery(1).Text), 4) & "' order by 课程号"
Set rst = SelectSQL(SQL, msg)
CboQuery(3).Clear
If rst.RecordCount > 0 Then '如果存在课程信息
Do While Not rst.EOF
strItem = rst.Fields(0) & " " & rst.Fields(1)
CboQuery(3).AddItem (strItem)
rst.MoveNext
Loop
rst.Close
CboQuery(3).ListIndex = 0
Else '如果不存在课程信息退出
Exit Sub
End If
End Sub
Private Sub CboQuery_Click(Index As Integer)
If Index = 0 Then
Call SelectData(0) '得到系列表
ElseIf Index = 1 Then
If CboQuery(1).ListCount > 0 Then
Call SelectData(1) '得到班级列表
End If
End If
End Sub
Private Sub CmdDivide_Click()
'将课程分配到具体的班级
Dim rst As ADODB.Recordset
Dim classNo As String
Dim courseNo As String
Dim divDate As String
classNo = Left(Trim(CboQuery(2).Text), 6) '得到班号
courseNo = Left(Trim(CboQuery(3).Text), 6) '得到课程号
divDate = Format(Now, "yyyy-mm-dd") '得到分配日期
If Not CheckData(classNo, courseNo) Then '检查是否已经被分配
Exit Sub
End If
'得到课程分配信息记录集
SQL = "select * from 课程分配信息表 where 班号='" & strClassNo & "'"
Set rst = SelectSQL(SQL, msg)
If CboQuery(3).ListCount > 0 Then '如果存在课程信息
msg = MsgBox("你确认分配吗?", vbYesNo)
If msg = vbYes Then
rst.AddNew
rst.Fields("课程号") = courseNo
rst.Fields("班号") = classNo
rst.Fields("分配日期") = divDate
rst.Fields("任课教师") = Trim(txtItem(0).Text)
rst.Fields("备注") = Trim(txtItem(1).Text)
rst.Update
MsgBox ("分配成功!")
txtItem(0).Text = ""
txtItem(1).Text = ""
End If
End If
End Sub
Private Function CheckData(classNo As String, courseNo As String) As Boolean
'唯一性检查
Dim rst As ADODB.Recordset
SQL = "select * from 课程分配信息表 where 班号='" & classNo & "'"
SQL = SQL & " and 课程号='" & courseNo & "'"
Set rst = SelectSQL(SQL, msg)
If rst.RecordCount > 0 Then '如果已经存在分配记录
CheckData = False
MsgBox ("重复分配!")
ElseIf rst.RecordCount = 0 Then '如果不存在分配记录
CheckData = True
End If
End Function
Private Sub CmdExit_Click()
'退出操作
Unload Me
学生档案管理.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
Unload Me
学生档案管理.Enabled = True
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -