www.pudn.com > vb71053453673553.rar > Form2.frm
VERSION 5.00
Object = "{67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0"; "MSADODC.OCX"
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Object = "{4406B9AC-521E-476B-AF25-3D2C36110576}#3.0#0"; "CommandSCE.ocx"
Begin VB.Form Form2
BorderStyle = 1 'Fixed Single
Caption = "成绩分析"
ClientHeight = 6795
ClientLeft = 45
ClientTop = 435
ClientWidth = 9945
Icon = "Form2.frx":0000
LinkTopic = "Form2"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6795
ScaleWidth = 9945
StartUpPosition = 2 '屏幕中心
Begin VB.Frame Frame1
Caption = "参数设置"
Enabled = 0 'False
Height = 1515
Left = 6870
TabIndex = 13
Top = 90
Width = 2685
Begin VB.TextBox TextSET
Enabled = 0 'False
Height = 285
Index = 2
Left = 1440
TabIndex = 16
TabStop = 0 'False
Text = "60"
Top = 1050
Width = 735
End
Begin VB.TextBox TextSET
Enabled = 0 'False
Height = 285
Index = 1
Left = 1440
TabIndex = 15
TabStop = 0 'False
Text = "60"
Top = 690
Width = 735
End
Begin VB.TextBox TextSET
Enabled = 0 'False
Height = 285
Index = 0
Left = 1440
TabIndex = 14
TabStop = 0 'False
Text = "90"
Top = 330
Width = 735
End
Begin VB.Label Label6
Caption = "差生分数:<="
Enabled = 0 'False
Height = 315
Left = 120
TabIndex = 22
Top = 1080
Width = 1215
End
Begin VB.Label Label5
Caption = "及格分数:>="
Enabled = 0 'False
Height = 315
Left = 120
TabIndex = 21
Top = 720
Width = 1215
End
Begin VB.Label Label4
Caption = "优秀分数:>="
Enabled = 0 'False
Height = 315
Left = 120
TabIndex = 20
Top = 360
Width = 1215
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "分"
Enabled = 0 'False
Height = 180
Left = 2250
TabIndex = 19
Top = 1110
Width = 180
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "分"
Enabled = 0 'False
Height = 180
Left = 2250
TabIndex = 18
Top = 750
Width = 180
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "分"
Enabled = 0 'False
Height = 180
Left = 2250
TabIndex = 17
Top = 390
Width = 180
End
End
Begin CSCommandSCE.CommandSCE CommandSCE修改参数
Height = 345
Left = 8310
TabIndex = 12
Top = 1740
Width = 1245
_ExtentX = 2196
_ExtentY = 609
Icon = "Form2.frx":058A
Caption = "修改参数"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ShowFocus = 0 'False
Appearance = 2
End
Begin MSAdodcLib.Adodc AdoHZ
Height = 330
Left = 210
Top = 1290
Visible = 0 'False
Width = 1755
_ExtentX = 3096
_ExtentY = 582
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "AdoHZ"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin CSCommandSCE.CommandSCE CommandOUT
Height = 555
Left = 4380
TabIndex = 11
Top = 1590
Width = 285
_ExtentX = 503
_ExtentY = 979
IconAlign = 0
Icon = "Form2.frx":0B24
Caption = "《 "
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin CSCommandSCE.CommandSCE CommandIN
Height = 585
Left = 4380
TabIndex = 10
Top = 630
Width = 285
_ExtentX = 503
_ExtentY = 1032
IconAlign = 0
Icon = "Form2.frx":0B40
Caption = " 》"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin MSAdodcLib.Adodc AdoBJ
Height = 330
Left = 2880
Top = 2280
Visible = 0 'False
Width = 1770
_ExtentX = 3122
_ExtentY = 582
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "AdoBJ"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin MSAdodcLib.Adodc AdoNJ
Height = 330
Left = 2460
Top = 1950
Visible = 0 'False
Width = 1785
_ExtentX = 3149
_ExtentY = 582
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "AdoNJ"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin VB.ListBox List2
Height = 2220
Left = 2580
TabIndex = 6
Top = 360
Width = 1725
End
Begin VB.ListBox List1
Height = 2220
Left = 150
TabIndex = 5
Top = 360
Width = 1785
End
Begin VB.ListBox ListHZ
Height = 2220
Left = 4710
TabIndex = 0
Top = 360
Width = 1785
End
Begin MSAdodcLib.Adodc AdoFIXGrid
Height = 330
Left = 3150
Top = 4530
Visible = 0 'False
Width = 2385
_ExtentX = 4207
_ExtentY = 582
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "AdoFIXGrid"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin MSFlexGridLib.MSFlexGrid MSFlexGrid结果
Height = 4095
Left = 0
TabIndex = 1
Top = 2670
Width = 9945
_ExtentX = 17542
_ExtentY = 7223
_Version = 393216
Rows = 30
Cols = 30
FixedCols = 0
AllowBigSelection= 0 'False
FocusRect = 0
GridLinesFixed = 1
AllowUserResizing= 1
End
Begin CSCommandSCE.CommandSCE Cmmond2EXCEL
Height = 345
Left = 8310
TabIndex = 2
Top = 2220
Width = 1245
_ExtentX = 2196
_ExtentY = 609
Icon = "Form2.frx":0B5C
Caption = "输出结果"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ShowFocus = 0 'False
Appearance = 2
End
Begin CSCommandSCE.CommandSCE Command计算分析
Height = 345
Left = 6900
TabIndex = 3
Top = 2220
Width = 1245
_ExtentX = 2196
_ExtentY = 609
Icon = "Form2.frx":10F6
Caption = "计算分析"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ShowFocus = 0 'False
Appearance = 2
End
Begin CSCommandSCE.CommandSCE Command刷新科目列表
Height = 345
Left = 6900
TabIndex = 4
Top = 1740
Width = 1245
_ExtentX = 2196
_ExtentY = 609
Icon = "Form2.frx":1690
Caption = "刷新科目"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ShowFocus = 0 'False
Appearance = 2
End
Begin VB.Label Lab9
Caption = "参与当前考试的班级:"
Height = 255
Left = 2580
TabIndex = 9
Top = 90
Width = 1815
End
Begin VB.Label Lab10
Caption = "本考试中涉及的科目:"
Height = 255
Left = 180
TabIndex = 8
Top = 90
Width = 1845
End
Begin VB.Label Lab16
Caption = "欲参与汇总的班级:"
ForeColor = &H80000007&
Height = 285
Left = 4710
TabIndex = 7
Top = 90
Width = 1755
End
End
Attribute VB_Name = "Form2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub CommandIN_Click()
Dim I
For I = 0 To List2.ListCount - 1
ListHZ.AddItem List2.List(I)
Next I
End Sub
Private Sub CommandOUT_Click()
ListHZ.Clear
End Sub
Private Sub CommandSCE修改参数_Click()
If CommandSCE修改参数.Caption = "修改参数" Then
CommandSCE修改参数.Caption = "保存参数"
Command计算分析.Enabled = False
Cmmond2EXCEL.Enabled = False
Frame1.Enabled = True
TextSET(0).Enabled = True
TextSET(1).Enabled = True
TextSET(2).Enabled = True
Label1.Enabled = True
Label2.Enabled = True
Label3.Enabled = True
Label4.Enabled = True
Label5.Enabled = True
Label6.Enabled = True
Else
CommandSCE修改参数.Caption = "修改参数"
Command计算分析.Enabled = True
Cmmond2EXCEL.Enabled = True
Frame1.Enabled = False
TextSET(0).Enabled = False
TextSET(1).Enabled = False
TextSET(2).Enabled = False
Label1.Enabled = False
Label2.Enabled = False
Label3.Enabled = False
Label4.Enabled = False
Label5.Enabled = False
Label6.Enabled = False
End If
End Sub
Private Sub Command刷新科目列表_Click() '计算输出界面使用=======================
AdoHZ.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\db\svdb.mdb;Persist Security Info=False"
AdoHZ.RecordSource = "SELECT TOP 1 * FROM 成绩"
AdoHZ.Refresh
Dim I
If List1.ListCount <> 0 Then List1.Clear
For I = 5 To AdoHZ.Recordset.Fields.Count - 1
List1.AddItem Trim(AdoHZ.Recordset.Fields(I).Name)
Next
List2.Clear
ListHZ.Clear
End Sub
'===============================================
' 计算调用
Private Sub Command计算分析_Click()
If ListHZ.ListCount = 0 Then Exit Sub
If ListHZ.ListCount > 25 Then
MsgBox "本程序只提供最大对25个班级进行计算分析?请调整选择!", vbCritical + vbOKOnly, "超范围"
Exit Sub
End If
'If MsgBox("确定进行计算分析?", vbQuestion + vbOKCancel, "确认") = vbCancel Then Exit Sub
'
On Error Resume Next
Screen.MousePointer = 11
Form2EnableSet False
'预定义函数如下
Dim CountZF '班级Z分数
Dim CountStudents(29) As Integer '学生人数
Dim AVGfenshu(29) '平均分数
Dim AVGNj '年级平均分
Dim BZFenshu(29) '标准分数
Dim YouXiuS(29), JiGeS(29), ChaShengS(29)
Dim NJMaxFS, NJMinFS
CountZF = 0
NJMaxFS = 0
NJMinFS = 1000
Dim RowE
AdoFIXGrid.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\db\svdb.mdb;Persist Security Info=False"
With MSFlexGrid结果
.Clear
'===================== 重新设置表头
.Row = 0
.Col = 0: .Text = "班级"
.Col = 1: .Text = "教师"
.Col = 2: .Text = "与考"
.Col = 3: .Text = "平均分"
.Col = 4: .Text = "标准分"
.Col = 5: .Text = "Z分数"
.Col = 6: .Text = "优秀数"
.Col = 7: .Text = "优秀率%"
.Col = 8: .Text = "及格数"
.Col = 9: .Text = "及格率%"
.Col = 10: .Text = "差生数"
.Col = 11: .Text = "差生率%"
.Col = 12: .Text = "最高分"
.Col = 13: .Text = "最低分"
'================================================================= *******
For RowE = 1 To ListHZ.ListCount '开始(留表头空间)
.Row = RowE
'======== 班级
.Col = 0
.Text = ListHZ.List(RowE - 1)
'========================================================
.Col = 3 '平均分
AdoFIXGrid.RecordSource = "SELECT AVG([" & List1.Text & "]) FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "' AND [" & List1.Text & "] NOT IN ('/')"
AdoFIXGrid.Refresh
AVGfenshu(RowE) = Round(AdoFIXGrid.Recordset.Fields(0).Value, 2)
.Text = AVGfenshu(RowE)
'========================================================
.Col = 2 '与考人数
AdoFIXGrid.RecordSource = "SELECT [" & List1.Text & "] FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "' AND [" & List1.Text & "] NOT IN ('/')"
AdoFIXGrid.Refresh
CountStudents(RowE) = AdoFIXGrid.Recordset.RecordCount
.Text = CountStudents(RowE)
DoEvents
'========================================================
'标准分 +++ 承接以上“与考人数”数据集
.Col = 4
Dim Bzf1, CountFenChaZhi '(个人分数-班级平均分数)平方 后的集合
CountFenChaZhi = 0
AdoFIXGrid.Recordset.MoveFirst
For Bzf1 = 0 To AdoFIXGrid.Recordset.RecordCount - 1
'===== 计算标准分
CountFenChaZhi = CountFenChaZhi + Round((AdoFIXGrid.Recordset.Fields(0).Value - AVGfenshu(RowE))) ^ 2
AdoFIXGrid.Recordset.MoveNext
Next Bzf1
BZFenshu(RowE) = Round((CountFenChaZhi / CountStudents(RowE)) ^ (1 / 2), 2) '该数据是计算Z分数的依据
.Text = BZFenshu(RowE)
'========================================================
.Col = 6 '"优秀人数"
AdoFIXGrid.RecordSource = "SELECT ID FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "' and [" & List1.Text & "] >='" & Trim(TextSET(0)) & "'" '优秀
AdoFIXGrid.Refresh
YouXiuS(RowE) = AdoFIXGrid.Recordset.RecordCount
.Text = CStr(YouXiuS(RowE))
'========================================================
.Col = 7 '"优秀率"
.Text = Format(AdoFIXGrid.Recordset.RecordCount / CountStudents(RowE) * 100, "0.00")
'========================================================
.Col = 8 '及格人数
AdoFIXGrid.RecordSource = "SELECT ID FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "' and [" & List1.Text & "] >='" & Trim(TextSET(1)) & "'" '及格总数
AdoFIXGrid.Refresh
JiGeS(RowE) = AdoFIXGrid.Recordset.RecordCount
.Text = CStr(JiGeS(RowE))
'========================================================
.Col = 9 '及格率(人数/总数 % )
.Text = Format(AdoFIXGrid.Recordset.RecordCount / CountStudents(RowE) * 100, "0.00")
'========================================================
.Col = 10 '差生人数"
AdoFIXGrid.RecordSource = "SELECT ID FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "' and [" & List1.Text & "] <'" & Trim(TextSET(2)) & "'" & " and [" & List1.Text & "] >='0'" '差生
AdoFIXGrid.Refresh
ChaShengS(RowE) = AdoFIXGrid.Recordset.RecordCount
.Text = CStr(ChaShengS(RowE))
'========================================================
.Col = 11 '差生率"
.Text = Format(AdoFIXGrid.Recordset.RecordCount / CountStudents(RowE) * 100, "0.00")
'========================================================
.Col = 12 '最高分"
AdoFIXGrid.RecordSource = "SELECT MAX([" & List1.Text & "]) FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "'" 'MAX FENSHU
AdoFIXGrid.Refresh
If CDbl(NJMaxFS) < CDbl(AdoFIXGrid.Recordset.Fields(0).Value) Then NJMaxFS = AdoFIXGrid.Recordset.Fields(0).Value
.Text = CStr(AdoFIXGrid.Recordset.Fields(0).Value)
'========================================================
.Col = 13 '最低分"
AdoFIXGrid.RecordSource = "SELECT MIN([" & List1.Text & "]) FROM 成绩 WHERE 年级 LIKE '" & Left(ListHZ.List(RowE - 1), 4) & "' AND 班级 LIKE '" & Right(ListHZ.List(RowE - 1), 3) & "'" & " and [" & List1.Text & "] >='0'" 'MIN FENSHU
AdoFIXGrid.Refresh
If CDbl(NJMinFS) > CDbl(AdoFIXGrid.Recordset.Fields(0).Value) Then NJMinFS = AdoFIXGrid.Recordset.Fields(0).Value
.Text = CStr(AdoFIXGrid.Recordset.Fields(0).Value)
DoEvents
Next RowE
.Row = RowE + 1 '===========统计行
.Col = 0: .Text = "年 级"
.Col = 2
Dim I2, NJ2
NJ2 = 0
For I2 = 1 To ListHZ.ListCount
NJ2 = NJ2 + CountStudents(I2)
Next I2
.Text = NJ2
.Col = 3
Dim I3, NJ3
NJ3 = 0
For I3 = 1 To ListHZ.ListCount
NJ3 = NJ3 + AVGfenshu(I3)
Next I3
AVGNj = Round(NJ3 / ListHZ.ListCount, 2)
.Text = AVGNj
.Col = 4
Dim I4, NJ4
NJ4 = 0
For I4 = 1 To ListHZ.ListCount
NJ4 = NJ4 + BZFenshu(I4)
Next I4
.Text = Round(NJ4 / ListHZ.ListCount, 2)
.Col = 6
Dim I6, NJ6
NJ6 = 0
For I6 = 1 To ListHZ.ListCount
NJ6 = NJ6 + YouXiuS(I6)
Next I6
.Text = NJ6
.Col = 7
Dim I7, NJ7
NJ7 = 0
For I7 = 1 To ListHZ.ListCount
.Row = I7
NJ7 = NJ7 + CDbl(.Text)
Next I7
.Row = RowE + 1
.Text = Format(NJ7 / ListHZ.ListCount, "0.00")
.Col = 8
Dim I8, NJ8
NJ8 = 0
For I8 = 1 To ListHZ.ListCount
NJ8 = NJ8 + JiGeS(I8)
Next I8
.Text = NJ8
.Col = 9
Dim I9, NJ9
NJ9 = 0
For I9 = 1 To ListHZ.ListCount
.Row = I9
NJ9 = NJ9 + CDbl(.Text)
Next I9
.Row = RowE + 1
.Text = Format(NJ9 / ListHZ.ListCount, "0.00")
.Col = 10
Dim I10, NJ10
NJ10 = 0
For I10 = 1 To ListHZ.ListCount
NJ10 = NJ10 + ChaShengS(I10)
Next I10
.Text = NJ10
.Col = 11
Dim I11, NJ11
NJ11 = 0
For I11 = 1 To ListHZ.ListCount
.Row = I11
NJ11 = NJ11 + CDbl(.Text)
Next I11
.Row = RowE + 1
.Text = Format(NJ11 / ListHZ.ListCount, "0.00")
.Col = 12: .Text = NJMaxFS
.Col = 13: .Text = NJMinFS
' ========================================================
.Col = 5 '"Z分数"
Dim I_ZF
For I_ZF = 1 To ListHZ.ListCount
.Row = I_ZF
If (AVGfenshu(I_ZF) - AVGNj) / BZFenshu(I_ZF) = 0 Then
.Text = "0"
Else
.Text = Format((AVGfenshu(I_ZF) - AVGNj) / BZFenshu(I_ZF), "0.00")
End If
Next I_ZF
.Row = 0
.Col = 0
End With
Debug.Print " 结束: " & Now
Form2EnableSet True
Screen.MousePointer = 0
End Sub
Private Sub Cmmond2EXCEL_Click() '************************* 输出到EXCEL
On Error Resume Next
Screen.MousePointer = 11
Dim xlsApp As Excel.Application
Dim xlsWK As Excel.Workbook
Dim xlsSHEET As Excel.Worksheet
Set xlsApp = CreateObject("Excel.Application")
Set xlsWK = xlsApp.Workbooks.Add
Set xlsSHEET = xlsWK.Sheets(1) '=======================
DoEvents
Screen.MousePointer = 0
MSFlexGrid结果.Visible = False
Dim I, J, AR(29, 29)
For I = 0 To 29
Screen.MousePointer = 11
For J = 0 To 29
MSFlexGrid结果.Col = I
MSFlexGrid结果.Row = J
AR(J, I) = MSFlexGrid结果.Text
Next J
Screen.MousePointer = 0
Next I
MSFlexGrid结果.Visible = True
DoEvents
'============================================
xlsSHEET.Cells(1, 1) = List1.Text & " 成绩分析"
xlsSHEET.Cells(39, 1) = "青岛市商业中专 " & Format(Now(), " 日期:YYYY年MM月DD日")
'======================================================================
With xlsSHEET.Range("A1:N1") '报表表头设置
.MergeCells = True
.HorizontalAlignment = xlCenter
.Font.Size = 12
End With
DoEvents
With xlsSHEET.Range("A39:N39") '报表日期设置
.MergeCells = True
.HorizontalAlignment = xlRight
End With
'===========================================!!!!!! 获得数据集合数组
'==============================设置EXCEL格式
xlsSHEET.Rows("1:32").RowHeight = 18
xlsSHEET.Rows("3:42").Font.Size = 10
Screen.MousePointer = 11
With xlsSHEET.Range("A3:N3")
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Screen.MousePointer = 11
DoEvents
Screen.MousePointer = 0
xlsSHEET.Range("A4:N32").HorizontalAlignment = xlRight '表体右排列
xlsSHEET.Range("A4:N32").VerticalAlignment = xlBottom
xlsSHEET.Range("A3:N32").Value = AR
xlsSHEET.Columns("A:N").AutoFit
Screen.MousePointer = 11
'======================
DoEvents
With xlsSHEET.PageSetup
.CenterHorizontally = True '打印 水平居中
.PaperSize = xlPaperA4 'A4打印纸
.Orientation = xlPortrait '竖向放置
.LeftMargin = Application.InchesToPoints(0.15748031496063)
.RightMargin = Application.InchesToPoints(0.15748031496063)
End With
Screen.MousePointer = 0
DoEvents
xlsApp.Visible = True
DoEvents
End Sub
Private Sub Form_Activate()
Me.Caption = Me.Caption & " 青岛市商业中专"
End Sub
Private Sub Form_Load()
Command刷新科目列表_Click
End Sub
Private Sub List1_Click()
On Error Resume Next
Screen.MousePointer = 13
If List1.SelCount <> 0 Then
ListHZ.Clear
If List2.ListCount <> 0 Then List2.Clear
Dim I, J
AdoNJ.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\db\svdb.mdb;Persist Security Info=False"
AdoBJ.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\db\svdb.mdb;Persist Security Info=False"
AdoNJ.RecordSource = "SELECT DISTINCT 年级 FROM 成绩 ORDER BY 年级"
AdoNJ.Refresh
AdoNJ.Recordset.MoveFirst
For I = 1 To AdoNJ.Recordset.RecordCount
AdoBJ.RecordSource = "SELECT DISTINCT 班级 FROM 成绩 WHERE 年级 = '" & AdoNJ.Recordset.Fields(0).Value & "' and [" & List1.Text & "] NOT LIKE '/' ORDER BY 班级"
AdoBJ.Refresh
For J = 1 To AdoBJ.Recordset.RecordCount
List2.AddItem AdoNJ.Recordset.Fields(0).Value & AdoBJ.Recordset.Fields(0).Value
AdoBJ.Recordset.MoveNext
Next J
AdoNJ.Recordset.MoveNext
Next I
Me.Caption = List1.Text & " " & Me.Caption
End If
Screen.MousePointer = 0
End Sub
Private Sub List2_DblClick()
ListHZ.AddItem List2.Text
End Sub
Private Sub ListHZ_DblClick()
ListHZ.RemoveItem ListHZ.ListIndex
End Sub
Private Sub TextSET_GotFocus(Index As Integer)
TextSET(Index).SelStart = 0
TextSET(Index).SelLength = 50
End Sub
Private Sub TextSET_KeyPress(Index As Integer, KeyAscii As Integer)
If InStr("0123456789." + vbBack, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Exit Sub
End If
End Sub
Private Sub TextSET_LostFocus(Index As Integer)
If IsNumeric(TextSET(Index).Text) = True Then
TextSET(Index).Text = Trim(TextSET(Index).Text)
Else
MsgBox "格式错误,请重新输入并确保其为数字格式!", vbCritical, "错误"
TextSET(Index).SetFocus
End If
End Sub
Public Sub Form2EnableSet(Bln As Boolean)
Dim obj
For Each obj In Form2
If obj.Name <> "Frame1" Then obj.Enabled = Bln
Next
End Sub