?? d成績單生成.frm
字號:
VERSION 5.00
Begin VB.Form D成績單生成
Caption = "成績單生成"
ClientHeight = 4575
ClientLeft = 60
ClientTop = 345
ClientWidth = 8385
LinkTopic = "Form1"
ScaleHeight = 4575
ScaleWidth = 8385
StartUpPosition = 3 'Windows Default
Begin VB.Frame Frame1
Caption = "成績單"
Height = 4455
Index = 0
Left = 0
TabIndex = 0
Top = 0
Width = 8295
Begin VB.TextBox txtReport
Height = 3735
Left = 3840
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 11
Top = 600
Width = 4335
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 1
Left = 1080
TabIndex = 6
Top = 960
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 0
Left = 1080
TabIndex = 5
Top = 480
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 2
Left = 1080
TabIndex = 4
Top = 1440
Width = 2295
End
Begin VB.ComboBox CboQuery
Height = 315
Index = 3
Left = 1080
TabIndex = 3
Top = 1920
Width = 2295
End
Begin VB.CommandButton CmdReport
Caption = "生成成績單"
Height = 375
Left = 1080
TabIndex = 2
Top = 2880
Width = 1455
End
Begin VB.CommandButton CmdExit
Caption = "退出"
Height = 375
Left = 1080
TabIndex = 1
Top = 3360
Width = 1455
End
Begin VB.Label LblNotes
Caption = "成績單"
Height = 375
Left = 4560
TabIndex = 12
Top = 240
Width = 3255
End
Begin VB.Label Label9
Caption = "系:"
Height = 240
Left = 600
TabIndex = 10
Top = 960
Width = 495
End
Begin VB.Label Label8
Caption = "學院:"
Height = 255
Index = 0
Left = 480
TabIndex = 9
Top = 480
Width = 735
End
Begin VB.Label Label1
Caption = "班級:"
Height = 255
Left = 480
TabIndex = 8
Top = 1440
Width = 975
End
Begin VB.Label LblCourse
Caption = "學生:"
Height = 375
Index = 1
Left = 480
TabIndex = 7
Top = 1920
Width = 1335
End
End
End
Attribute VB_Name = "D成績單生成"
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
'得到院信息記錄集
SQL = " select 院代碼,院名稱 from 院信息表 order by 院代碼"
Set rst = SelectSQL(SQL, msg)
If rst.RecordCount > 0 Then '如果存在院信息,初始化院ComboBox
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、學生ComboBox
End If
End Sub
Private Sub SelectData(Index As Integer)
'選擇下拉框時,更新下拉框內容
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 '如果存在系信息,初始化系ComboBox
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
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 '如果存在班級信息,初始化班級ComboBox
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(2).Text), 6) & "' order by 學號"
Set rst = SelectSQL(SQL, msg)
CboQuery(3).Clear
If rst.RecordCount > 0 Then '如果存在學生信息,初始化學生ComboBox
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 CmdReport_Click()
'顯示成績單
Dim strCaption As String
If CboQuery(3).ListCount > 0 Then
Call LoadData '顯示結果
Else
MsgBox ("不能顯示成績單!")
txtReport.Text = ""
End If
End Sub
Private Sub LoadData()
'顯示成績報表
Dim stuNo As String
Dim rs As ADODB.Recordset
Dim strReport As String
If CboQuery(2).ListCount > 0 And CboQuery(3).ListCount > 0 Then
stuNo = Left(Trim(CboQuery(3).Text), 8)
LblNotes.Caption = stuNo & "號學生成績單:"
strReport = strReport & stuNo & "號學生成績單" & vbCrLf
'得到每門課程的成績
strReport = strReport & "【課程成績】" & vbCrLf
SQL = "SELECT 課程名稱,成績 FROM 成績信息表 INNER JOIN "
SQL = SQL & "課程信息表 ON 成績信息表.課程號 = 課程信息表.課程號 "
SQL = SQL & " WHERE (成績信息表.學號 = '" & stuNo & "') order by 成績信息表.課程號"
Set rs = Nothing
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then
'寫信息
Do While (Not rs.EOF)
For Index = 0 To 1
If rs.Fields(Index) <> "" Then
strReport = strReport & rs.Fields(Index).Name & ":" & rs.Fields(Index) & vbCrLf
Else
strReport = strReport & rs.Fields(Index).Name & ":" & "未登成績" & vbCrLf
End If
Next Index
strReport = strReport & "--------------" & vbCrLf
rs.MoveNext
Loop
Else
strReport = strReport & "沒有成績....." & vbCrLf
End If
'得到平均成績
strReport = strReport & "平均成績:"
SQL = "SELECT ROUND(AVG(成績), 2) AS 平均成績 FROM 成績信息表 "
SQL = SQL & " WHERE ( 成績 >=0 and 學號 = '" & stuNo & "') "
Set rs = Nothing
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then
strReport = strReport & rs.Fields(0) & vbCrLf
End If
txtReport.Text = strReport '顯示成績單
rs.Close
Else
MsgBox ("不能顯示成績單!")
End If
End Sub
Private Sub CboQuery_Click(Index As Integer)
Dim strCaption As String
If Index = 0 Then
Call SelectData(0) '得到系列表
ElseIf Index = 1 Then
If CboQuery(1).ListCount > 0 Then
Call SelectData(1) '得到班級列表
End If
ElseIf Index = 2 Then
If CboQuery(2).ListCount > 0 Then
Call FixData '顯示學生列表
End If
End If
End Sub
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 + -