📄 frmtesting.frm
字号:
Index = 3
Left = 1785
TabIndex = 15
Top = 315
Width = 405
End
Begin VB.OptionButton optPR1
Caption = "C"
Height = 210
Index = 2
Left = 1320
TabIndex = 14
Top = 315
Width = 405
End
Begin VB.OptionButton optPR1
Caption = "B"
Height = 210
Index = 1
Left = 810
TabIndex = 13
Top = 315
Width = 405
End
Begin VB.OptionButton optPR1
Caption = "A"
Height = 210
Index = 0
Left = 345
TabIndex = 12
Top = 315
Width = 405
End
End
End
Begin VB.Frame frmAnswer
Caption = "单项选择题答案"
Height = 3480
Index = 1
Left = 6435
TabIndex = 5
Top = 397
Width = 2985
Begin VB.OptionButton optSO
Caption = "D"
Height = 285
Index = 3
Left = 585
TabIndex = 9
Top = 1335
Width = 735
End
Begin VB.OptionButton optSO
Caption = "C"
Height = 285
Index = 2
Left = 585
TabIndex = 8
Top = 1010
Width = 735
End
Begin VB.OptionButton optSO
Caption = "A"
Height = 285
Index = 0
Left = 570
TabIndex = 7
Top = 360
Width = 735
End
Begin VB.OptionButton optSO
Caption = "B"
Height = 285
Index = 1
Left = 585
TabIndex = 6
Top = 685
Width = 735
End
End
Begin VB.Frame frmAnswer
Caption = "判断题答案"
Height = 3480
Index = 0
Left = 6435
TabIndex = 2
Top = 397
Width = 2985
Begin VB.OptionButton optYesNo
Caption = "错误"
Height = 285
Index = 1
Left = 585
TabIndex = 4
Top = 690
Width = 735
End
Begin VB.OptionButton optYesNo
Caption = "正确"
Height = 285
Index = 0
Left = 585
TabIndex = 3
Top = 360
Width = 735
End
End
Begin VB.Label lblNews
AutoSize = -1 'True
Caption = "Label5"
Height = 180
Left = 6450
TabIndex = 36
Top = 4035
Width = 540
End
Begin VB.Label lblType
AutoSize = -1 'True
Caption = "Label1"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 532
TabIndex = 1
Top = 112
Width = 720
End
End
Attribute VB_Name = "DoTest"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Option Base 1 '定义数组下标从1开始
Dim objTest As Recordset '用于保存考试记录数据
Dim objJudge As Recordset '用于保存判断题题库数据
Dim objSelOne As Recordset '用于保存选择题题库数据
Dim objProRead As Recordset '用于保存程序阅读题题库数据
Dim objProFill As Recordset '用于保存程序填空题题库数据
Dim objCn As Connection '用于建立数据库连接
Dim strTest() As String '用于表存学生答题信息
Dim iJ%, iSO%, iPR%, iPF%, iTotal% '用于保存小题数和总题数
Private Sub cmbType_Click()
'显示对应题型的第小题
Select Case cmbType.ListIndex
Case 0
'显示判断题第一小题
cmdMove(0).Value = True '使第一条记录成为当前记录
Case 1
'显示选择题第一小题
cmdMove(0).Value = True '使第一条记录成为当前记录
objTest.Move iJ - 1 '使最后一道判断题成为当前记录
cmdMove(2).Value = True '使第一道选择题成为当前记录
Case 2
'显示程序阅读题第一小题
cmdMove(0).Value = True '使第一条记录成为当前记录
objTest.Move iJ + iSO - 1 '使最后一道选择题成为当前记录
cmdMove(2).Value = True '使第一道程序阅读题成为当前记录
Case 3
'显示程序填空第一小题
cmdMove(0).Value = True '使第一条记录成为当前记录
objTest.Move iJ + iSO + iPR - 1 '使最后一道程序阅读题成为当前记录
cmdMove(2).Value = True '使第一道程序填空题成为当前记录
End Select
End Sub
Private Sub cmdEsc_Click()
If MsgBox("真的放弃本次考试码?", vbQuestion + vbYesNo, _
"Basic自测考试") = vbYes Then
Unload Me
End '结束程序运行
End If
End Sub
Private Sub cmdSubmit_Click()
On Error Resume Next
Dim strA$, strB$, strC$, strD$, i%, strSQL$
If MsgBox("请认真检查后交卷,交卷后则不能再继续考试!", _
vbYesNo + vbInformation, "Basic自测考试") = vbYes Then
'改变试题当前记录,保存对试题最后的修改
cmdMove(1).Value = True
'获得学生答题数据
For i = 1 To iJ
strA = strA & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
Next
For i = iJ + 1 To iJ + iSO
strB = strB & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
Next
For i = iJ + iSO + 1 To iJ + iSO + 3 * iPR
strC = strC & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
Next
For i = iJ + iSO + 3 * iPR + 1 To iTotal
strD = strD & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
Next
strA = Mid(strA, 3)
strB = Mid(strB, 3)
strC = Mid(strC, 3)
strD = Mid(strD, 3)
'将学生答题数据存入数据库
strSQL = "Insert into 考试记录 (考号,判断题,选择题,程序阅读,程序填空) " & _
"VALUES ('" & StudentCode & "','" & strA & "','" & strB & "','" _
& strC & "','" & strD & "')"
objCn.Open
objCn.Execute strSQL
objCn.Close
MsgBox "成功提交试题,考试结束!", vbInformation, "Basic自测考试"
Unload Me
End '结束程序运行
End If
End Sub
Private Sub Form_Load()
Dim n%, i%, m%, s%, s1%
Set objCn = New Connection
With objCn '建立数据库联接
.Provider = "SQLOLEDB"
.ConnectionString = "User ID=sa;PWD=123;Server=" & TestServerIP & _
";Initial Catalog=自测考试"
.Open
End With
'访问数据库获得判断题数据
Set objJudge = New Recordset '实例化对象
With objJudge
Set .ActiveConnection = objCn '建立数据库连接
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM 判断题" '获取判断题数据
Set .ActiveConnection = Nothing '断开数据库连接
End With
'访问数据库获得单项选择题数据
Set objSelOne = New Recordset '实例化对象
With objSelOne
Set .ActiveConnection = objCn '建立数据库连接
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM 选择题" '获取选择题数据
Set .ActiveConnection = Nothing '断开数据库连接
End With
'访问数据库获得程序阅读题数据
Set objProRead = New Recordset '实例化对象
With objProRead
Set .ActiveConnection = objCn '建立数据库连接
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM 程序阅读" '获取程序阅读题数据
Set .ActiveConnection = Nothing '断开数据库连接
End With
'访问数据库获得程序填空题数据
Set objProFill = New Recordset '实例化对象
With objProFill
Set .ActiveConnection = objCn '建立数据库连接
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM 程序填空" '获取程序填空题数据
Set .ActiveConnection = Nothing '断开数据库连接
End With
'访问数据库获得本次试题数据
Set objTest = New Recordset '实例化对象
With objTest
Set .ActiveConnection = objCn '建立数据库连接
.CursorLocation = adUseClient '指定使用客户端游标
.CursorType = adOpenStatic '指定使用静态游标
.Open "SELECT * FROM ThisTest" '获取本次试题数据
Set .ActiveConnection = Nothing '断开数据库连接
'统计总题数
.Filter = "题型='判断题'"
n = n + .RecordCount
iJ = .RecordCount
s = n * .Fields("分数")
lblNews = "一、判断题(" & Trim(Str(n)) & "小题,每题" & Trim(Str(.Fields("分数"))) _
& "分,共" & Trim(Str(s)) & "分)"
.Filter = "题型='选择题'"
m = .RecordCount
iSO = m
n = n + m
s1 = m * .Fields("分数")
s = s + s1
lblNews = lblNews & vbCrLf & "二、选择题(" & Trim(Str(m)) & "小题,每题" & Trim(Str(.Fields("分数"))) _
& "分,共" & Trim(Str(s1)) & "分)"
.Filter = "题型='程序阅读'"
iPR = .RecordCount
n = n + .RecordCount * 3
s1 = .Fields("分数")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -