?? frmkaoshi.frm
字號(hào):
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000C0&
Height = 210
Left = 5415
TabIndex = 25
Top = 5010
Width = 525
End
Begin VB.Line Line2
BorderWidth = 2
X1 = 7305
X2 = 7305
Y1 = 4995
Y2 = 5265
End
Begin VB.Shape Shape2
BackColor = &H00E8F4F8&
FillColor = &H00FFFFFF&
FillStyle = 0 'Solid
Height = 315
Left = 5940
Top = 4965
Width = 1950
End
End
Begin VB.Image imgSubmit
Height = 960
Left = 9240
MouseIcon = "FrmKaoShi.frx":DE32
MousePointer = 99 'Custom
Picture = "FrmKaoShi.frx":E274
Top = 7680
Width = 1305
End
End
Attribute VB_Name = "FrmKaoShi"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'保存時(shí)從1開(kāi)始算,0號(hào)為空
Dim TKIDArr() As Long '填空題id數(shù)組
Dim PDIDArr() As Long '判斷題id數(shù)組
Dim WDIDArr() As Long '問(wèn)答題id數(shù)組
Dim ZWIDArr() As Long '作文題id數(shù)組
Dim OldDAan As String '保存舊一次的答案
Dim NewWho As Integer '表示現(xiàn)在操作那個(gè)題型
'由ID值求他的對(duì)應(yīng)題目的分?jǐn)?shù)
Function GetScoreByID(ScoreArr() As String, ByVal ID As Long) As String
Dim i As Long
Dim strArr() As String
For i = 0 To UBound(ScoreArr)
strArr = Split(ScoreArr(i), ",")
If strArr(0) = Int2Str(ID) Then
GetScoreByID = strArr(1)
Exit Function
End If
Next i
GetScoreByID = ""
End Function
'生成本機(jī)數(shù)據(jù)
Function CreateTest() As Boolean
Dim adoRS As Recordset
Set adoRS = New Recordset
adoRS.CursorLocation = adUseClient
adoRS.Open "kaoshixinxi", ConnString, adOpenStatic, adLockOptimistic
'讀題目
'判斷是否發(fā)卷
If adoRS.EOF Then
CreateTest = False
Exit Function
Else
'創(chuàng)建本地試卷信息
Dim LocaladoRs As Recordset
Set LocaladoRs = New Recordset
LocaladoRs.CursorLocation = adUseClient
LocaladoRs.Open "試卷信息", LocalConn, adOpenStatic, adLockOptimistic
LocaladoRs.AddNew
LocaladoRs.Fields("試卷標(biāo)題").Value = adoRS.Fields("title").Value
LabTitle.Caption = adoRS.Fields("title").Value
LocaladoRs.Fields("考試日期").Value = Date '當(dāng)天
LocaladoRs.Fields("試卷編號(hào)").Value = adoRS.Fields("id").Value
LocaladoRs.Fields("試卷總分").Value = adoRS.Fields("zscore").Value
LabScore.Caption = "總分:" & adoRS.Fields("zscore").Value & "分"
'LocaladoRs.Fields("科目ID").Value = adoRS.Fields("kemuid").Value
'LocaladoRs.Fields("年級(jí)ID").Value = adoRS.Fields("nianjiid").Value
LocaladoRs.Update
Set LocaladoRs = Nothing
'保存題目id數(shù)組
Dim TempIDArr() As String
'保存題目分?jǐn)?shù)數(shù)組
Dim TempScoreArr() As String
Dim Pcount As Integer '題目的個(gè)數(shù)
'Dim TLong As Long
Dim i As Integer
Dim ScoreArr() As String '保存分?jǐn)?shù)和題目對(duì)應(yīng)的數(shù)組
Dim sql As String
'定義保存試卷題目的記錄集
Dim adoSJRs As Recordset
Set adoSJRs = New Recordset
adoSJRs.CursorLocation = adUseClient
'生成單選題
'========判斷是否有單選題
If adoRS.Fields("danxuan").Value <> "" Then
TempIDArr = Split(adoRS.Fields("danxuan").Value, ",")
TempScoreArr = Split(adoRS.Fields("danxuans").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti,xuanze1,xuanze2,xuanze3,xuanze4,daan from question where id in (" + adoRS.Fields("danxuan").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷選擇題(ID,問(wèn)題,A,B,C,D,答案,分?jǐn)?shù),考生答案,類別) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "','" + adoSJRs.Fields("xuanze1").Value + "','" + adoSJRs.Fields("xuanze2").Value + "','"
sql = sql + adoSJRs.Fields("xuanze3").Value + "','" + adoSJRs.Fields("xuanze4").Value + "','" + adoSJRs.Fields("daan").Value + "'," + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'','"
sql = sql + "單')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'生成多選題
If adoRS.Fields("duoxuan").Value <> "" Then
TempIDArr = Split(adoRS.Fields("duoxuan").Value, ",")
TempScoreArr = Split(adoRS.Fields("duoxuans").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti,xuanze1,xuanze2,xuanze3,xuanze4,daan from question where id in (" + adoRS.Fields("duoxuan").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷選擇題(ID,問(wèn)題,A,B,C,D,答案,分?jǐn)?shù),考生答案,類別) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "','" + adoSJRs.Fields("xuanze1").Value + "','" + adoSJRs.Fields("xuanze2").Value + "','"
sql = sql + adoSJRs.Fields("xuanze3").Value + "','" + adoSJRs.Fields("xuanze4").Value + "','" + adoSJRs.Fields("daan").Value + "'," + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'','"
sql = sql + "多')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'生成填空題
If adoRS.Fields("tiankong").Value <> "" Then
TempIDArr = Split(adoRS.Fields("tiankong").Value, ",")
TempScoreArr = Split(adoRS.Fields("tiankongs").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti,Kcount from questionTK where id in (" + adoRS.Fields("tiankong").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷填空題(ID,問(wèn)題,空數(shù),分?jǐn)?shù),考生答案) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "'," & adoSJRs.Fields("Kcount").Value & ","
sql = sql + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'生成判斷題
If adoRS.Fields("panduan").Value <> "" Then
TempIDArr = Split(adoRS.Fields("panduan").Value, ",")
TempScoreArr = Split(adoRS.Fields("panduans").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti,daan from questionPD where id in (" + adoRS.Fields("panduan").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷判斷題(ID,問(wèn)題,答案,分?jǐn)?shù),考生答案) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "','" & adoSJRs.Fields("daan").Value & "',"
sql = sql + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'生成問(wèn)答題
If adoRS.Fields("wenda").Value <> "" Then
TempIDArr = Split(adoRS.Fields("wenda").Value, ",")
TempScoreArr = Split(adoRS.Fields("wendas").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti from questionWD where id in (" + adoRS.Fields("wenda").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷問(wèn)答題(ID,問(wèn)題,分?jǐn)?shù),考生答案) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "',"
sql = sql + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'生成作文題
If adoRS.Fields("zuowen").Value <> "" Then
TempIDArr = Split(adoRS.Fields("zuowen").Value, ",")
TempScoreArr = Split(adoRS.Fields("zuowens").Value, ",")
Pcount = UBound(TempIDArr)
ReDim ScoreArr(Pcount + 1)
For i = 0 To Pcount
ScoreArr(i) = TempIDArr(i) + "," + TempScoreArr(i)
Next i
sql = "select id,wenti from questionZW where id in (" + adoRS.Fields("zuowen").Value + ")"
adoSJRs.Open sql, ConnString, adOpenStatic, adLockOptimistic
'插入本地?cái)?shù)據(jù)庫(kù)
Do While Not adoSJRs.EOF
'創(chuàng)建本地試卷
sql = "insert into 試卷作文題(ID,問(wèn)題,分?jǐn)?shù),考生答案) values(" + str(adoSJRs.Fields("id").Value) + ",'"
sql = sql + adoSJRs.Fields("wenti").Value + "',"
sql = sql + GetScoreByID(ScoreArr, adoSJRs.Fields("id").Value) + ",'')"
LocalConn.Execute sql
adoSJRs.MoveNext
Loop
'關(guān)閉adosjrs對(duì)象
adoSJRs.Close
End If
'悉放對(duì)象
Set adoRS = Nothing
Set adoSJRs = Nothing
End If
End Function
Private Sub Command5_Click()
End Sub
Private Sub Command6_Click()
End Sub
Private Sub Form_Load()
'判斷是否發(fā)試卷
'判斷是否已經(jīng)生成本地?cái)?shù)據(jù)庫(kù)
Dim adoRS As Recordset
Set adoRS = New Recordset
adoRS.CursorLocation = adUseClient
adoRS.Open "試卷信息", LocalConn, adOpenStatic, adLockOptimistic
If adoRS.EOF Then
CreateTest '生成試卷
Else
LabTitle.Caption = adoRS.Fields("試卷標(biāo)題").Value
LabScore.Caption = "總分:" & adoRS.Fields("試卷總分").Value & "分"
End If
'創(chuàng)建選擇題的樹
CreateTree
'顯示填空題顯示
adoRS.Close
adoRS.Open "select ID from 試卷填空題", LocalConn, adOpenStatic, adLockOptimistic
LstTK.Clear
If Not adoRS.EOF Then
adoRS.MoveLast
adoRS.MoveFirst
'重定義
ReDim TKIDArr(adoRS.RecordCount + 1) As Long
Do While Not adoRS.EOF
LstTK.AddItem "第" & adoRS.AbsolutePosition & "題"
TKIDArr(adoRS.AbsolutePosition) = adoRS.Fields("ID").Value
adoRS.MoveNext
Loop
End If
'顯示判斷題顯示
adoRS.Close
adoRS.Open "select ID from 試卷判斷題", LocalConn, adOpenStatic, adLockOptimistic
LstPD.Clear
If Not adoRS.EOF Then
adoRS.MoveLast
adoRS.MoveFirst
'重定義
ReDim PDIDArr(adoRS.RecordCount + 1) As Long
Do While Not adoRS.EOF
LstPD.AddItem "第" & adoRS.AbsolutePosition & "題"
PDIDArr(adoRS.AbsolutePosition) = adoRS.Fields("ID").Value
adoRS.MoveNext
Loop
End If
'顯示問(wèn)答題顯示
adoRS.Close
adoRS.Open "select ID from 試卷問(wèn)答題", LocalConn, adOpenStatic, adLockOptimistic
LstWD.Clear
If Not adoRS.EOF Then
adoRS.MoveLast
adoRS.MoveFirst
'重定義
ReDim WDIDArr(adoRS.RecordCount + 1) As Long
Do While Not adoRS.EOF
LstWD.AddItem "第" & adoRS.AbsolutePosition & "題"
WDIDArr(adoRS.AbsolutePosition) = adoRS.Fields("ID").Value
adoRS.MoveNext
Loop
End If
'顯示作文題顯示
adoRS.Close
adoRS.Open "select ID from 試卷作文題", LocalConn, adOpenStatic, adLockOptimistic
LstZW.Clear
If Not adoRS.EOF Then
adoRS.MoveLast
adoRS.MoveFirst
'重定義
ReDim ZWIDArr(adoRS.RecordCount + 1) As Long
Do While Not adoRS.EOF
LstZW.AddItem "第" & adoRS.AbsolutePosition & "題"
ZWIDArr(adoRS.AbsolutePosition) = adoRS.Fields("ID").Value
adoRS.MoveNext
Loop
End If
'顯示背景圖片
PicXZ.Picture = Me.Picture
PicTK.Picture = Me.Picture
PicPD.Picture = Me.Picture
PicWD.Picture = Me.Picture
PicZW.Picture = Me.Picture
'產(chǎn)生填空框
CreateDA
'初始化
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -