www.pudn.com > cjg2.rar > frmTesting.frm
VERSION 5.00
Begin VB.Form DoTest
BorderStyle = 1 'Fixed Single
Caption = "Form1"
ClientHeight = 6435
ClientLeft = 45
ClientTop = 330
ClientWidth = 9975
ControlBox = 0 'False
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6435
ScaleWidth = 9975
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton cmdEsc
Cancel = -1 'True
Caption = "放弃"
Height = 300
Left = 8055
TabIndex = 38
Top = 5610
Width = 870
End
Begin VB.CommandButton cmdSubmit
Caption = "交卷"
Height = 300
Left = 6945
TabIndex = 37
Top = 5602
Width = 870
End
Begin VB.PictureBox picNavigation
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 360
Left = 914
ScaleHeight = 360
ScaleWidth = 4980
TabIndex = 31
Top = 5962
Width = 4980
Begin VB.ComboBox cmbType
Height = 300
ItemData = "frmTesting.frx":0000
Left = 1814
List = "frmTesting.frx":0010
TabIndex = 43
Text = "cmbType"
Top = 30
Width = 1350
End
Begin VB.CommandButton cmdMove
Caption = "后一题"
Height = 300
Index = 2
Left = 3186
Style = 1 'Graphical
TabIndex = 35
Top = 15
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "末尾题"
Height = 300
Index = 3
Left = 4080
Style = 1 'Graphical
TabIndex = 34
Top = 15
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "第一题"
Height = 300
Index = 0
Left = 30
Style = 1 'Graphical
TabIndex = 33
Top = 15
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "前一题"
Height = 300
Index = 1
Left = 922
Style = 1 'Graphical
TabIndex = 32
Top = 15
Width = 870
End
End
Begin VB.TextBox txtTest
Height = 5505
Left = 532
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 0
Text = "frmTesting.frx":003C
Top = 397
Width = 5745
End
Begin VB.Frame frmAnswer
Caption = "程序填空题答案"
Height = 3480
Index = 3
Left = 6435
TabIndex = 22
Top = 397
Width = 2985
Begin VB.TextBox txtBlank
Height = 270
Index = 3
Left = 300
TabIndex = 30
Top = 2400
Width = 2505
End
Begin VB.TextBox txtBlank
Height = 270
Index = 2
Left = 300
TabIndex = 28
Top = 1825
Width = 2505
End
Begin VB.TextBox txtBlank
Height = 270
Index = 1
Left = 300
TabIndex = 26
Top = 1251
Width = 2505
End
Begin VB.TextBox txtBlank
Height = 270
Index = 0
Left = 300
TabIndex = 24
Top = 677
Width = 2505
End
Begin VB.Label lblBlank
AutoSize = -1 'True
Caption = "第4空"
Height = 180
Index = 3
Left = 300
TabIndex = 29
Top = 2205
Width = 450
End
Begin VB.Label lblBlank
AutoSize = -1 'True
Caption = "第3空"
Height = 180
Index = 2
Left = 300
TabIndex = 27
Top = 1635
Width = 450
End
Begin VB.Label lblBlank
AutoSize = -1 'True
Caption = "第2空"
Height = 180
Index = 1
Left = 300
TabIndex = 25
Top = 1035
Width = 450
End
Begin VB.Label lblBlank
AutoSize = -1 'True
Caption = "第1空"
Height = 180
Index = 0
Left = 300
TabIndex = 23
Top = 465
Width = 450
End
End
Begin VB.Frame frmAnswer
Caption = "程序阅读题答案"
Height = 3480
Index = 2
Left = 6435
TabIndex = 10
Top = 397
Width = 2985
Begin VB.Frame frmDivPR
Caption = "小题(3)"
Height = 705
Index = 2
Left = 180
TabIndex = 17
Top = 2265
Width = 2625
Begin VB.OptionButton optPR3
Caption = "A"
Height = 210
Index = 0
Left = 330
TabIndex = 21
Top = 315
Width = 405
End
Begin VB.OptionButton optPR3
Caption = "B"
Height = 210
Index = 1
Left = 810
TabIndex = 20
Top = 315
Width = 405
End
Begin VB.OptionButton optPR3
Caption = "C"
Height = 210
Index = 2
Left = 1305
TabIndex = 19
Top = 315
Width = 405
End
Begin VB.OptionButton optPR3
Caption = "D"
Height = 210
Index = 3
Left = 1785
TabIndex = 18
Top = 315
Width = 405
End
End
Begin VB.Frame frmDivPR
Caption = "小题(2)"
Height = 705
Index = 1
Left = 180
TabIndex = 16
Top = 1380
Width = 2625
Begin VB.OptionButton optPR2
Caption = "D"
Height = 210
Index = 3
Left = 1830
TabIndex = 42
Top = 375
Width = 405
End
Begin VB.OptionButton optPR2
Caption = "C"
Height = 210
Index = 2
Left = 1365
TabIndex = 41
Top = 375
Width = 405
End
Begin VB.OptionButton optPR2
Caption = "B"
Height = 210
Index = 1
Left = 900
TabIndex = 40
Top = 375
Width = 405
End
Begin VB.OptionButton optPR2
Caption = "A"
Height = 210
Index = 0
Left = 390
TabIndex = 39
Top = 375
Width = 405
End
End
Begin VB.Frame frmDivPR
Caption = "小题(1)"
Height = 705
Index = 0
Left = 180
TabIndex = 11
Top = 495
Width = 2625
Begin VB.OptionButton optPR1
Caption = "D"
Height = 210
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("分数")
'计算实际小题数
m = 0
While Not .EOF
objProRead.MoveFirst
objProRead.Find "编号=" & .Fields("编号") & ""
For i = 1 To 3
If objProRead.Fields("分题干" & Trim(Str(i))) <> "" Then m = m + 1
Next
.MoveNext
Wend
s = s + s1 * m
lblNews = lblNews & vbCrLf & "三、程序阅读题(" & Trim(Str(m)) & "小题,每题" & Trim(Str(s1)) _
& "分,共" & Trim(Str(s1 * m)) & "分)"
.Filter = "题型='程序填空'"
iPF = .RecordCount
n = n + .RecordCount * 4
s1 = .Fields("分数")
'计算实际小题数
m = 0
While Not .EOF
objProFill.MoveFirst
objProFill.Find "编号=" & .Fields("编号") & ""
For i = 1 To 4
If objProFill.Fields("空" & Chr(i + 96)) <> "" Then m = m + 1
Next
.MoveNext
Wend
s = s + s1 * m
lblNews = lblNews & vbCrLf & "四、程序填空题(" & Trim(Str(m)) & "小题,每题" & Trim(Str(s1)) _
& "分,共" & Trim(Str(s1 * m)) & "分)"
lblNews = "本试卷共4大题,总分" & Trim(Str(s)) & "分" & vbCrLf & lblNews
'重定义保存本次试题数据的数组
ReDim strTest(n, 2)
iTotal = n
'获取判断题数据
.Filter = "题型='判断题'"
n = 1
.MoveFirst
While Not .EOF
strTest(n, 1) = Trim(Str(.Fields("编号")))
n = n + 1
.MoveNext
Wend
'获取选择题数据
.Filter = "题型='选择题'"
.MoveFirst
While Not .EOF
strTest(n, 1) = Trim(Str(.Fields("编号")))
n = n + 1
.MoveNext
Wend
'获取程序填空题数据
.Filter = "题型='程序阅读'"
i = 1
.MoveFirst
While Not .EOF
strTest(n, 1) = Trim(Str(.Fields("编号")))
n = n + 1
i = i + 1
If i > 3 Then
i = 1
.MoveNext
End If
Wend
'获取程序填空题数据
.Filter = "题型='程序填空'"
i = 1
.MoveFirst
While Not .EOF
strTest(n, 1) = Trim(Str(.Fields("编号")))
n = n + 1
i = i + 1
If i > 4 Then
i = 1
.MoveNext
End If
Wend
.Filter = ""
End With
cmdMove(0).Value = True '显示第一道试题
objCn.Close
End Sub
Private Sub cmdMove_Click(Index As Integer)
Dim i%, strData$, n%, p%
With objTest
'保存当前试题所作答案
Select Case .AbsolutePosition
Case 1 To iJ
'保存判断题答案
If optYesNo(0) = True Then strTest(.AbsolutePosition, 2) = "TRUE"
If optYesNo(1) = True Then strTest(.AbsolutePosition, 2) = "FALSE"
optYesNo(0) = False
optYesNo(1) = False
Case iJ + 1 To iJ + iSO
'保存选择题答案
For i = 0 To 3
If optSO(i) = True Then strTest(.AbsolutePosition, 2) = Chr(65 + i)
optSO(i) = False
Next
Case iJ + iSO + 1 To iJ + iSO + iPR
'保存程序阅读题答案
p = (.AbsolutePosition - iJ - iSO - 1) * 2
For i = 0 To 3
If optPR1(i) = True Then strTest(.AbsolutePosition + p, 2) = Chr(65 + i)
If optPR2(i) = True Then strTest(.AbsolutePosition + p + 1, 2) = Chr(65 + i)
If optPR3(i) = True Then strTest(.AbsolutePosition + p + 2, 2) = Chr(65 + i)
Next
For i = 0 To 3
optPR1(i) = False: optPR2(i) = False: optPR3(i) = False
Next
Case iJ + iSO + iPR + 1 To iJ + iSO + iPR + iPF
'保存程序填空答案
p = (.AbsolutePosition - iJ - iSO - iPR - 1) * 3 + 2 * iPR
strTest(.AbsolutePosition + p, 2) = Trim(txtBlank(0))
txtBlank(0) = ""
strTest(.AbsolutePosition + p + 1, 2) = Trim(txtBlank(1))
txtBlank(1) = ""
strTest(.AbsolutePosition + p + 2, 2) = Trim(txtBlank(2))
txtBlank(2) = ""
strTest(.AbsolutePosition + p + 3, 2) = Trim(txtBlank(3))
txtBlank(3) = ""
End Select
'该变当前记录
Select Case Index '切换当前记录
Case 0 '使第一个记录成为当前记录
If .RecordCount > 0 Then .MoveFirst
Case 1 '使上一个记录成为当前记录
If .RecordCount > 0 And Not .BOF Then
.MovePrevious
If .BOF Then .MoveFirst
End If
Case 2 '使下一个记录成为当前记录
If .RecordCount > 0 And Not .EOF Then
.MoveNext
If .EOF Then .MoveLast
End If
Case 3 '使最后一个记录成为当前记录
If .RecordCount > 0 Then .MoveLast
End Select
'显示当前试题内容
Select Case .AbsolutePosition
Case 1 To iJ
'显示判断题内容及所作答案
lblType = "一、判断题"
cmbType = "判断题"
txtTest = Trim(Str(.AbsolutePosition)) & "、"
objJudge.MoveFirst
objJudge.Find "编号=" & .Fields("编号") & ""
txtTest = txtTest & objJudge.Fields("题干")
If strTest(.AbsolutePosition, 2) = "TRUE" Then optYesNo(0) = True
If strTest(.AbsolutePosition, 2) = "FALSE" Then optYesNo(1) = True
frmAnswer(0).Visible = True
frmAnswer(1).Visible = False
frmAnswer(2).Visible = False
frmAnswer(3).Visible = False
Case iJ + 1 To iJ + iSO
'显示选择题内容以及所作答案
cmbType = "选择题"
lblType = "二、选择题"
txtTest = Trim(Str(.AbsolutePosition - iJ)) & "、"
objSelOne.MoveFirst
objSelOne.Find "编号=" & .Fields("编号") & ""
txtTest = txtTest & objSelOne.Fields("题干")
txtTest = txtTest & vbCrLf & " (A)" & objSelOne.Fields("选项a")
txtTest = txtTest & vbCrLf & " (B)" & objSelOne.Fields("选项b")
txtTest = txtTest & vbCrLf & " (C)" & objSelOne.Fields("选项c")
txtTest = txtTest & vbCrLf & " (D)" & objSelOne.Fields("选项d")
frmAnswer(0).Visible = False
frmAnswer(1).Visible = True
frmAnswer(2).Visible = False
frmAnswer(3).Visible = False
For i = 0 To 3
If strTest(.AbsolutePosition, 2) = Chr(65 + i) Then optSO(i) = True
Next
Case iJ + iSO + 1 To iJ + iSO + iPR
cmbType = "程序阅读题"
'显示程序阅读内容以及所作答案
lblType = "三、程序阅读题"
n = .AbsolutePosition
p = (n - iJ - iSO - 1) * 2
txtTest = Trim(Str(n - iJ - iSO)) & "、" & vbCrLf
objProRead.MoveFirst
objProRead.Find "编号=" & .Fields("编号") & ""
txtTest = txtTest & objProRead.Fields("题干") & vbCrLf
txtTest = txtTest & "(1)" & objProRead.Fields("分题干1")
strData = Replace(objProRead.Fields("选项1a"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (A)" & strData
strData = Replace(objProRead.Fields("选项1b"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (B)" & strData
strData = Replace(objProRead.Fields("选项1c"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (C)" & strData
strData = Replace(objProRead.Fields("选项1d"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (D)" & strData
If objProRead.Fields("分题干2") <> "" Then
txtTest = txtTest & vbCrLf & "(2)" & objProRead.Fields("分题干2")
strData = Replace(objProRead.Fields("选项2a"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (A)" & strData
strData = Replace(objProRead.Fields("选项2b"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (B)" & strData
strData = Replace(objProRead.Fields("选项2c"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (C)" & strData
strData = Replace(objProRead.Fields("选项2d"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (D)" & strData
frmDivPR(1).Visible = True
Else
frmDivPR(1).Visible = False
End If
If objProRead.Fields("分题干3") <> "" Then
If objProRead.Fields("分题干2") <> "" Then
txtTest = txtTest & vbCrLf & "(3)" & objProRead.Fields("分题干3")
Else
txtTest = txtTest & vbCrLf & "(2)" & objProRead.Fields("分题干3")
End If
strData = Replace(objProRead.Fields("选项3a"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (A)" & strData
strData = Replace(objProRead.Fields("选项3b"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (B)" & strData
strData = Replace(objProRead.Fields("选项3c"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (C)" & strData
strData = Replace(objProRead.Fields("选项3d"), Chr(13) & Chr(10), Chr(13) & Chr(10) & Space(10))
txtTest = txtTest & vbCrLf & " (D)" & strData
frmDivPR(2).Visible = True
Else
frmDivPR(2).Visible = False
End If
frmAnswer(0).Visible = False
frmAnswer(1).Visible = False
frmAnswer(2).Visible = True
frmAnswer(3).Visible = False
For i = 0 To 3
If strTest(.AbsolutePosition + p, 2) = Chr(65 + i) Then optPR1(i) = True
If strTest(.AbsolutePosition + p + 1, 2) = Chr(65 + i) Then optPR2(i) = True
If strTest(.AbsolutePosition + p + 2, 2) = Chr(65 + i) Then optPR3(i) = True
Next
Case iJ + iSO + iPR + 1 To iJ + iSO + iPR + iPF
cmbType = "程序填空题"
'显示程序填空题及所作答案
p = (.AbsolutePosition - iJ - iSO - iPR - 1) * 3 + 2 * iPR
lblType = "四、程序填空题"
n = .AbsolutePosition
txtTest = Trim(Str(n - iJ - iSO - iPR)) & "、" & vbCrLf
objProFill.MoveFirst
objProFill.Find "编号=" & .Fields("编号") & ""
txtTest = txtTest & objProFill.Fields("题干")
txtBlank(0) = strTest(n + p, 2)
txtBlank(1) = strTest(n + p + 1, 2)
txtBlank(2) = strTest(n + p + 2, 2)
txtBlank(3) = strTest(n + p + 3, 2)
If objProFill.Fields("空b") = "" Then
txtBlank(1).Visible = False
lblBlank(1).Visible = False
Else
txtBlank(1).Visible = True
lblBlank(1).Visible = True
End If
If objProFill.Fields("空c") = "" Then
txtBlank(2).Visible = False
lblBlank(2).Visible = False
Else
txtBlank(2).Visible = True
lblBlank(2).Visible = True
End If
If objProFill.Fields("空d") = "" Then
txtBlank(3).Visible = False
lblBlank(3).Visible = False
Else
txtBlank(3).Visible = True
lblBlank(3).Visible = True
End If
frmAnswer(0).Visible = False
frmAnswer(1).Visible = False
frmAnswer(2).Visible = False
frmAnswer(3).Visible = True
End Select
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set objCn = Nothing
Set objJudge = Nothing
Set objTest = Nothing
Set objSelOne = Nothing
Set objProRead = Nothing
Set objProFill = Nothing
End Sub