📄 frmdotest.frm
字号:
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Index = 0
Left = 300
TabIndex = 14
Top = 600
Width = 315
End
End
Begin VB.Frame frmAnswer
Caption = "问答题答案"
Height = 5160
Index = 4
Left = 6120
TabIndex = 6
Top = 360
Width = 3945
Begin VB.TextBox txtanswer
Height = 4485
Left = 180
ScrollBars = 3 'Both
TabIndex = 7
Top = 510
Width = 3585
End
Begin VB.Label lblanswer
AutoSize = -1 'True
Caption = "答案"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 240
Left = 120
TabIndex = 8
Top = 240
Width = 480
End
End
Begin VB.TextBox txtTest
Height = 6330
Left = 240
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 3
Text = "frmdotest.frx":0000
Top = 405
Width = 5625
End
Begin VB.PictureBox picNavigation
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 360
Left = 480
ScaleHeight = 360
ScaleWidth = 5100
TabIndex = 2
Top = 6960
Width = 5100
Begin VB.ComboBox cmbtype
Height = 300
ItemData = "frmdotest.frx":0006
Left = 1935
List = "frmdotest.frx":0019
TabIndex = 35
Text = "cmbType"
Top = 0
Width = 1350
End
Begin VB.CommandButton cmdMove
Caption = "后一题"
Height = 300
Index = 2
Left = 3300
Style = 1 'Graphical
TabIndex = 34
Top = 0
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "末尾题"
Height = 300
Index = 3
Left = 4200
Style = 1 'Graphical
TabIndex = 33
Top = 15
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "第一题"
Height = 300
Index = 0
Left = 150
Style = 1 'Graphical
TabIndex = 32
Top = 0
Width = 870
End
Begin VB.CommandButton cmdMove
Caption = "前一题"
Height = 300
Index = 1
Left = 1035
Style = 1 'Graphical
TabIndex = 31
Top = 0
Width = 870
End
End
Begin VB.CommandButton cmdSubmit
Caption = "交卷"
Height = 300
Left = 6660
TabIndex = 1
Top = 7050
Width = 870
End
Begin VB.CommandButton cmdEsc
Cancel = -1 'True
Caption = "放弃"
Height = 300
Left = 7770
TabIndex = 0
Top = 7065
Width = 870
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 = 240
TabIndex = 5
Top = 120
Width = 720
End
Begin VB.Label lblNews
AutoSize = -1 'True
Caption = "Label5"
Height = 180
Left = 6240
TabIndex = 4
Top = 5640
Width = 540
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 objselmany As Recordset '用于保存多项选择题题库数据
Dim objfill As Recordset '用于保存程序填空题题库数据
Dim objanswer As Recordset '用于保存问答题题库数据
Dim objCn As Connection '用于建立数据库连接
Dim strTest() As String '用于表存学生答题信息
Dim ij%, iso%, ism%, ifl%, ians%, iTotal% '用于保存小题数和总题数
'Dim studentcode As String
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 + ism - 1 '使最后一道程序阅读题成为当前记录
cmdMove(2).Value = True '使第一道程序填空题成为当前记录
Case 4
'显示问答题第一小题
cmdMove(0).Value = True '使第一条记录成为当前记录
objTest.Move ij + iso + ism + ifl - 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 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) = Str(i)
optSO(i) = False
Next
Case ij + iso + 1 To ij + iso + ism
'保存多项选择题答案
For i = 0 To 3
If chksm(i) = 1 And InStr(strTest(.AbsolutePosition, 2), i + 1) = 0 Then strTest(.AbsolutePosition, 2) = strTest(.AbsolutePosition, 2) & "," & CStr(i + 1)
chksm(i) = False
Next
Case ij + iso + ism + 1 To ij + iso + ism + ifl
'保存填空题答案
p = (.AbsolutePosition - ij - iso - ism - 1) * 3
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) = ""
Case ij + iso + ism + ifl + 1 To ij + iso + ism + ifl + ians
'保存问答题答案
p = ifl * 3
strTest(.AbsolutePosition + p, 2) = Trim(txtanswer)
txtanswer = ""
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
frmAnswer(4).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
frmAnswer(4).Visible = False
For i = 0 To 3
If strTest(.AbsolutePosition, 2) = Str(i) Then optSO(i) = True
Next
Case ij + iso + 1 To ij + iso + ism
'显示多项选择题内容以及所作答案
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -