📄 mdimainfrm.frm
字号:
VERSION 5.00
Begin VB.MDIForm MDIMainfrm
BackColor = &H8000000C&
Caption = "选课系统"
ClientHeight = 3195
ClientLeft = 4065
ClientTop = 3630
ClientWidth = 4680
LinkTopic = "MDIForm1"
Begin VB.Menu filemenu
Caption = "文件"
Begin VB.Menu logoutmenu
Caption = "注销"
End
Begin VB.Menu exitmenu
Caption = "退出"
End
End
Begin VB.Menu actionmenu
Caption = "操作"
Begin VB.Menu personinfomenu
Caption = "查看个人信息"
End
Begin VB.Menu resultmenu
Caption = "查看选课情况"
End
Begin VB.Menu changepwdmenu
Caption = "修改密码"
End
Begin VB.Menu reportmenu
Caption = "生成报告"
Begin VB.Menu coursemenu
Caption = "选修课程报表"
End
Begin VB.Menu subjectrpmenu
Caption = "单科选课报告"
End
End
End
Begin VB.Menu aboutmenu
Caption = "关于"
End
End
Attribute VB_Name = "MDIMainfrm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub aboutmenu_Click()
' 显示关于窗体
frmAbout.Show vbModal, Me
End Sub
Private Sub changepwdmenu_Click()
' 显示修改密码窗体
changepwdfrm.Show vbModal, Me
End Sub
Private Sub coursemenu_Click()
Dim sqlstr As String
sqlstr = " SELECT 课程.课程编号, 课程.课程名称, 课程.任课教师, 课程.教师职称, 课程.学分 ,课程.总学时 FROM 课程"
Call GenerateReport(sqlstr, "选修课报表")
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
'非通过菜单退出时, 关闭数据库
courseDB.Close
End Sub
' 显示选课情况
Private Sub resultmenu_Click()
resultfrm.Show
End Sub
Private Sub subjectrpmenu_Click()
Dim sql As String
Dim courseID, rpTitle As String
Dim courseRD As Recordset
courseID = InputBox("请输入课程编号")
sql = "select 课程编号, 课程名称 from 课程 where 课程编号='" & courseID & "'"
Set courseRD = courseDB.OpenRecordset(sql, dbOpenSnapshot, ReadOnly)
If courseRD.RecordCount = 0 Then
If MsgBox("您输入的课程编号有误", vbRetryCancel) = vbRetry Then
Call subjectrpmenu_Click
Else
Exit Sub
End If
Else
sql = " SELECT 课程.课程名称, 学生信息.姓名, 学生信息.性别, 学生信息.学号, 学生信息.专业, 学生信息.年级 "
sql = sql & "FROM 学生信息 INNER JOIN (课程 INNER JOIN 学号课程 ON 课程.课程编号=学号课程.课程编号) ON 学生信息.学号=学号课程.学号 "
sql = sql & "WHERE 学号课程.课程编号='" & courseRD.Fields("课程编号") & "'"
rpTitle = courseRD.Fields("课程名称") & "选课报表"
Call GenerateReport(sql, rpTitle)
End If
courseRD.Close
End Sub
Private Sub logoutmenu_Click()
ID = ""
userName = ""
Unload MDIMainfrm
introfrm.Show
End Sub
Private Sub exitmenu_Click()
'退出, 关闭数据库
courseDB.Close
Set courseDB = Nothing
End
End Sub
Private Sub MDIForm_Load()
If admin Then
MDIMainfrm.personinfomenu.Enabled = False
Else
With MDIMainfrm
.coursemenu.Enabled = False
.subjectrpmenu.Enabled = False
.resultmenu.Enabled = False
.reportmenu.Enabled = False
End With
mainfrm.MSFlexGrid1.ToolTipText = "双击鼠标填写选课表单"
End If
MDIMainfrm.WindowState = vbMaximized
mainfrm.WindowState = vbMaximized
mainfrm.Show
If admin = False Then
infofrm.Show vbModal, Me
End If
End Sub
Private Sub personinfomenu_Click()
infofrm.Show vbModal, Me
End Sub
Private Sub GenerateReport(sqlstr As String, rpTitle As String)
Dim app As New Word.Application
Dim doc As Word.Document
Dim sel As Word.Selection
Dim tbl As Word.Table
Dim RD As Recordset
Dim i, j As Integer
app.Visible = True
app.Documents.Add
docname = app.ActiveDocument.Name
Set doc = app.Documents(docname)
Set courseinfo = courseDB.OpenRecordset(sqlstr, dbOpenSnapshot, ReadOnly)
Set sel = app.Selection
With sel
.Font.Name = "宋体"
.Font.Size = 30
.Font.Bold = True
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.InsertAfter rpTitle
.InsertParagraphAfter
.InsertParagraphAfter
.EndOf
End With
sel.Font.Size = 10
If courseinfo.RecordCount > 0 Then
courseinfo.MoveLast
sel.MoveEnd
Set tbl = sel.Tables.Add(sel.Range, courseinfo.RecordCount + 1, courseinfo.Fields.Count)
tbl.AutoFormat (36)
tbl.AllowAutoFit = True
tbl.Columns.AutoFit
With tbl
courseinfo.MoveFirst
For j = 1 To .Columns.Count
.Cell(1, j).Range.Font.Bold = True
.Cell(1, j).Range.Text = courseinfo.Fields(j - 1).Name
Next j
For i = 2 To .Rows.Count
For j = 1 To .Columns.Count
.Cell(i, j).Range.Text = courseinfo.Fields(j - 1).Value
Next j
courseinfo.MoveNext
Next i
End With
Else
sel.Document.Range.InsertAfter "没有记录"
End If
sel.GoToNext (wdGoToTable)
sel.Document.Range.InsertParagraphAfter
sel.Document.Range.InsertAfter Date
'
courseinfo.Close
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -