?? frmtesting.frm
字號:
'計算實際小題數
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -