📄 paperproperty.frm
字号:
For j = 0 To cmbChapter(0).ListCount - 1
n = n + Chapter(i, j)
Next
If n <> Val(txtCount(i)) Then Chapter(i, 0) = Chapter(i, 0) + Val(txtCount(i)) - n
Next
'将cmbchapter列表itemdata中的百分比数转换为章节编号
For i = 0 To 4
For j = 0 To cmbChapter(0).ListCount - 1
objRsChapter.MoveFirst
objRsChapter.Find "名称='" & cmbChapter(i).List(j) & "'"
cmbChapter(i).ItemData(j) = objRsChapter!编号
Next
Next
'生成试卷
For i = 0 To 4
Selected = ""
Select Case i
Case 0 '选择判断题
strTest = strTest & "一、判断题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
strAnswer = strAnswer & "一、判断题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
j = 1
While Count(i) > 0
'随即产生一个未选择的试题的记录序号
Do
If Timer - doTime > 20 Then
MsgBox "1本次生成试题花费时间过长,退出重试!", vbCritical
Exit Sub
End If
n = Int(Rnd * objRsJudge.RecordCount + 1) '判断题
Loop Until InStr(Selected, "#" & n & "#") = 0
Selected = Selected & "#" & n & "#"
objRsJudge.MoveFirst
objRsJudge.Move n - 1
Select Case objRsJudge!难度
Case 0
If Level0(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
strAnswer = strAnswer & j & "、"
If objRsJudge!答案 Then
strAnswer = strAnswer & "错误"
Else
strAnswer = strAnswer & "正确"
End If
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level0(i) = Level0(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsJudge!图片) Then _
strTest = strTest & "本题图片:" & objRsJudge!图片
End If
End If
Case 1
If Level1(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
strAnswer = strAnswer & j & "、"
If objRsJudge!答案 Then
strAnswer = strAnswer & "错误"
Else
strAnswer = strAnswer & "正确"
End If
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level1(i) = Level1(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsJudge!图片) Then _
strTest = strTest & "本题图片:" & objRsJudge!图片
End If
End If
Case 2
If Level2(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
strAnswer = strAnswer & j & "、"
If objRsJudge!答案 Then
strAnswer = strAnswer & "错误"
Else
strAnswer = strAnswer & "正确"
End If
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level2(i) = Level2(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsJudge!图片) Then _
strTest = strTest & "本题图片:" & objRsJudge!图片
End If
End If
End Select
Wend
Case 1 '选择单选题
strTest = strTest & "二、单选题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
strAnswer = strAnswer & "二、单选题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
j = 1
While Count(i) > 0
'随即产生一个未选择的试题的记录序号
Do
If Timer - doTime > 30 Then
MsgBox "本次生成试题花费时间过长,退出重试!", vbCritical
Exit Sub
End If
n = Int(Rnd * objRsSingle.RecordCount + 1)
Loop Until InStr(Selected, "#" & n & "#") = 0
Selected = Selected & "#" & n & "#"
objRsSingle.MoveFirst
objRsSingle.Move n - 1
Select Case objRsSingle!难度
Case 0
If Level0(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
strTest = strTest & " A、" & objRsSingle!选项1 & vbCrLf
strTest = strTest & " B、" & objRsSingle!选项2 & vbCrLf
strTest = strTest & " C、" & objRsSingle!选项3 & vbCrLf
strTest = strTest & " D、" & objRsSingle!选项4 & vbCrLf
strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level0(i) = Level0(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsSingle!图片) Then _
strTest = strTest & "本题图片:" & objRsSingle!图片
End If
End If
Case 1
If Level1(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
strTest = strTest & " A、" & objRsSingle!选项1 & vbCrLf
strTest = strTest & " B、" & objRsSingle!选项2 & vbCrLf
strTest = strTest & " C、" & objRsSingle!选项3 & vbCrLf
strTest = strTest & " D、" & objRsSingle!选项4 & vbCrLf
strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level1(i) = Level1(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsSingle!图片) Then _
strTest = strTest & "本题图片:" & objRsSingle!图片
End If
End If
Case 2
If Level2(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
strTest = strTest & " A、" & objRsSingle!选项1 & vbCrLf
strTest = strTest & " B、" & objRsSingle!选项2 & vbCrLf
strTest = strTest & " C、" & objRsSingle!选项3 & vbCrLf
strTest = strTest & " D、" & objRsSingle!选项4 & vbCrLf
strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level2(i) = Level2(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsSingle!图片) Then _
strTest = strTest & "本题图片:" & objRsSingle!图片
End If
End If
End Select
Wend
Case 2 '选择多选题
strTest = strTest & "三、多选题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
strAnswer = strAnswer & "三、多选题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
j = 1
While Count(i) > 0
'随即产生一个未选择的试题的记录序号
Do
If Timer - doTime > 30 Then
MsgBox "本次生成试题花费时间过长,退出重试!", vbCritical
Exit Sub
End If
n = Int(Rnd * objRsMore.RecordCount + 1)
Loop Until InStr(Selected, "#" & n & "#") = 0
Selected = Selected & "#" & n & "#"
objRsMore.MoveFirst
objRsMore.Move n - 1
Select Case objRsMore!难度
Case 0
If Level0(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
strTest = strTest & " A、" & objRsMore!选项1 & vbCrLf
strTest = strTest & " B、" & objRsMore!选项2 & vbCrLf
strTest = strTest & " C、" & objRsMore!选项3 & vbCrLf
strTest = strTest & " D、" & objRsMore!选项4 & vbCrLf
strAnswer = strAnswer & j & "、"
For more = 0 To 3
If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
strAnswer = strAnswer & Abcd(more) & ","
Next
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level0(i) = Level0(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsMore!图片) Then _
strTest = strTest & "本题图片:" & objRsMore!图片
End If
End If
Case 1
If Level1(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
strTest = strTest & " A、" & objRsMore!选项1 & vbCrLf
strTest = strTest & " B、" & objRsMore!选项2 & vbCrLf
strTest = strTest & " C、" & objRsMore!选项3 & vbCrLf
strTest = strTest & " D、" & objRsMore!选项4 & vbCrLf
strAnswer = strAnswer & j & "、"
For more = 0 To 3
If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
strAnswer = strAnswer & Abcd(more) & ","
Next
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level1(i) = Level1(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsMore!图片) Then _
strTest = strTest & "本题图片:" & objRsMore!图片
End If
End If
Case 2
If Level2(i) > 0 Then
'检查本章试题是否已选够
For n = 0 To 4
If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
Next
If Chapter(i, n) > 0 Then
strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
strTest = strTest & " A、" & objRsMore!选项1 & vbCrLf
strTest = strTest & " B、" & objRsMore!选项2 & vbCrLf
strTest = strTest & " C、" & objRsMore!选项3 & vbCrLf
strTest = strTest & " D、" & objRsMore!选项4 & vbCrLf
strAnswer = strAnswer & j & "、"
For more = 0 To 3
If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
strAnswer = strAnswer & Abcd(more) & ","
Next
strAnswer = strAnswer & vbCrLf
j = j + 1
Chapter(i, n) = Chapter(i, n) - 1
Level2(i) = Level2(i) - 1
Count(i) = Count(i) - 1
If Not IsNull(objRsMore!图片) Then _
strTest = strTest & "本题图片:" & objRsMore!图片
End If
End If
End Select
Wend
Case 3 '选择填空题
strTest = strTest & "四、填空题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
strAnswer = strAnswer & "四、填空题。(共" & txtCount(i) _
& ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
j = 1
While Count(i) > 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -