⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdimainfrm.frm

📁 很好的学习资料
💻 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 + -