📄 mdiform1.frm
字号:
VERSION 5.00
Begin VB.MDIForm MDIMainfrm
BackColor = &H8000000C&
Caption = "选课系统"
ClientHeight = 3195
ClientLeft = 165
ClientTop = 735
ClientWidth = 4680
LinkTopic = "MDIForm1"
StartUpPosition = 3 '窗口缺省
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 = "生成报告"
End
Begin VB.Menu coursemenu
Caption = "选修课程报表"
End
Begin VB.Menu subjectrpmenu
Caption = "单科选课报告"
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 GenerateReport_Click()
End Sub
'显示选课情况
Private Sub resultmenu_Click()
Resultfrm.Show
End Sub
'生成所有选修课基本信息的报表
Private Sub coursemenu_Click()
Dim sqlstr As Sring
sqlstr = "SELECT 课程.课程编号,课程.课程名称,课程.任课教师,课程.教师职称,课程.学分,课程.总学时 FROM 课程"
'生成所有选修课程基本信息的报表
Call GenerateReport(sqlstr, "选修课报表")
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
'非通过菜单退出时,关闭数据库
courseDB.Close
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.MSFlexGirdl.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
' 生成word格式报告
Private Sub GenerateReport(sqlstr As String, rpTitle As String)
Dim app As New Word.Application '定义Word.Application
Dim doc As Word.Document '定义Word.Document
Dim sel As Word.Selection '定义Word.Selection
Dim tbl As Word.Table '定义Word.Table
Dim RD As Recordset '定义记录集
Dim i, j As Integer '定义循环指标
app .Visible = True '显示Application
app.Documents.Add '添加文档
docname = app.ActiveDocument.Name '获取文档名
Set doc = app.Document(docname) '赋当前文档给doc变量
Set courseinfo = courseDB.OpenRecordset(sqlstr, dbOpenSnapshot, ReadOnly) '打开记录集
Set sel = app.Selection
'设定word文档字体等属性
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 '遍历记录集
'在word中创建表格
Set tbl = sel.Tables.Add(sel.Range, courseinfo.RecordCount + 1, courseinfo.Fields.Count)
tbl.AutoFormat (36)
tbl.AllowAutoFit = True
tbl.Cilumns.AutoFit
'将选课数据写入到word文档中
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 + -