回 帖 发 新 帖 刷新版面

主题:求助 求VB高手解释程序

Option Explicit
''答案显示项目之间的距离
Private Const mcsinSpace As Single = 200
Private mintCurrentSubject As Integer   ''当前的试题
Private rstMain         As Recordset
Private rstDetail       As Recordset

Private isProgChangeValue   As Boolean

Private Sub chkAnswer_Click(Index As Integer)
Dim i As Integer
Dim strAnswer As String
Static isBusy As Boolean
Dim rst As Recordset
    If isProgChangeValue Then GoTo Proc_Exit
    If Not isBusy Then
        isBusy = True
        If Not rstMain![题目类型] Then
            For i = 0 To chkAnswer.UBound
                If i <> Index Then
                    chkAnswer(i).Value = 0
                Else
                    chkAnswer(i).Value = 1
                    strAnswer = chkAnswer(i).Caption
                End If
            Next i
        Else
            For i = 0 To chkAnswer.UBound
                If chkAnswer(i).Value = 1 Then
                    strAnswer = strAnswer & chkAnswer(i).Caption
                End If
            Next i
        End If
        Set rst = New Recordset
        rst.ActiveConnection = pCN
        rst.Source = "select * from 考生答案 where 准考证号='" & pudtStudent.准考证号 & "' and 题目编号='" & rstMain![题目编号] & "'"
        rst.CursorLocation = adUseClient
        rst.CursorType = adOpenStatic
        rst.LockType = adLockBatchOptimistic
        rst.Open
        rst![考生答案] = strAnswer
        rst.UpdateBatch
        Set rst = Nothing
        isBusy = False
    End If
Proc_Exit:
    
    
End Sub

''下一题
Private Sub Command1_Click()
    If Not rstMain.EOF Then
        Command1.Enabled = True
        Command2.Enabled = True
        rstMain.MoveNext
        If rstMain.RecordCount = rstMain.Bookmark Then
            Command1.Enabled = False
            Command2.Enabled = True
        End If
    Else
        rstMain.MoveLast
    End If
    Call RefreshSubject
End Sub

Private Sub RefreshSubject()
Dim i As Integer
Dim rstAnswer As Recordset

    lblDescription.Caption = rstMain![题目内容]
    Frame1.Caption = IIf(rstMain![题目类型], "多选题", "单选题")
    Me.Caption = "准考证号: " & pudtStudent.准考证号 & " 姓名: " & pudtStudent.考生姓名 & "     当前 第 " & rstMain.Bookmark & " 条"
    
    
    ''得到答题的数据
    Call SetDetail
    
    ''首先卸载当前加载的对象
    For i = 1 To lblAnswer.UBound
        Unload lblAnswer(i)
        Unload chkAnswer(i)
    Next i
    
    isProgChangeValue = True
    chkAnswer(0).Value = 0
    
    For i = 1 To rstDetail.RecordCount - 1
        
        Load chkAnswer(i)
        chkAnswer(i).Left = chkAnswer(0).Left
        
        Load lblAnswer(i)
        lblAnswer(i).Width = lblAnswer(0).Width
        lblAnswer(i).Height = lblAnswer(0).Height
        
        lblAnswer(i).Left = lblAnswer(0).Left
    Next i
    
    rstDetail.MoveFirst
        
    
    chkAnswer(0).Caption = rstDetail![题目编码]
    
    'lblAnswer(i).Left = 10
    
    lblAnswer(0).Caption = rstDetail![备选答案]
    
    rstDetail.MoveNext
    For i = 1 To rstDetail.RecordCount - 1
        
        chkAnswer(i).Caption = rstDetail![题目编码]
        chkAnswer(i).Top = lblAnswer(i - 1).Top + lblAnswer(i - 1).Height + mcsinSpace
                            
        lblAnswer(i).Top = chkAnswer(i).Top
        lblAnswer(i).Caption = rstDetail![备选答案]
        
        lblAnswer(i).Visible = True
        chkAnswer(i).Visible = True
        rstDetail.MoveNext
    Next i
    
    ''如果该题已经做过了,则加载该题的答案
                
    Set rstAnswer = New Recordset
    rstAnswer.CursorLocation = adUseClient
    rstAnswer.LockType = adLockBatchOptimistic
    rstAnswer.CursorType = adOpenStatic
    rstAnswer.Source = "select * from 考生答案 where 准考证号='" & pudtStudent.准考证号 & "' and 题目编号='" & rstMain![题目编号] & "'"
    rstAnswer.ActiveConnection = pCN
    rstAnswer.Open
    
    If Len(rstAnswer![考生答案] & "") > 0 Then
        For i = 0 To chkAnswer.UBound
            If InStr(1, UCase(rstAnswer![考生答案]), UCase(chkAnswer(i).Caption)) > 0 Then
                chkAnswer(i).Value = 1
            End If
        Next i
    End If
    
    
    isProgChangeValue = False
End Sub



''上一题
Private Sub Command2_Click()
    Command1.Enabled = True
    Command2.Enabled = True
    
    rstMain.MovePrevious
    If rstMain.Bookmark = 1 Then
        Command2.Enabled = False
        Command1.Enabled = True
    End If
    Call RefreshSubject
End Sub


''交卷
Private Sub Command3_Click()
Dim rst As Recordset
    If MsgBox("交卷后将不能在进行考试,你真的要交卷了吗?", vbQuestion + vbYesNo) = vbYes Then
        ''整理进行交卷动作
        Set rst = New Recordset
        rst.LockType = adLockBatchOptimistic
        rst.CursorLocation = adUseClient
        rst.CursorType = adOpenStatic
        Set rst.ActiveConnection = pCN
        rst.Source = "select * from 考生 where 准考证号='" & pudtStudent.准考证号 & "'"
        rst.Open
        rst![考生状态] = "已交卷"
        rst.UpdateBatch
        Unload Me
    End If
    End
End Sub


Private Sub Command4_Click()
  frmClient.Show 1
End Sub

Private Sub Form_Load()
frmAnswer.Height = 0
    Command2.Enabled = False
    
    Set rstMain = New Recordset
    
    rstMain.ActiveConnection = pCN
    rstMain.Source = "select * from 题库主表 where 题目套号=" & pintSetNumber
    rstMain.LockType = adLockBatchOptimistic
    
    rstMain.CursorLocation = adUseClient
    rstMain.CursorType = adOpenStatic
    rstMain.Open

    Call RefreshSubject
    
End Sub

''设置答案信息
Private Sub SetDetail()
    Set rstDetail = Nothing
    Set rstDetail = New Recordset
    rstDetail.ActiveConnection = pCN
    rstDetail.Source = "select * from 题目明细 where 题目编号='" & rstMain![题目编号] & "'"
    
    rstDetail.LockType = adLockPessimistic
    rstDetail.CursorLocation = adUseClient
    rstDetail.CursorType = adOpenStatic
    rstDetail.Open
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set rstMain = Nothing
    Set rstDetail = Nothing
End Sub

Private Sub lblAnswer_Click(Index As Integer)
    Call chkAnswer_Click(Index)
End Sub

Private Sub Timer1_Timer()
If frmAnswer.Height < 6945 Then
frmAnswer.Height = frmAnswer.Height + 100
End If
End Sub

回复列表 (共2个回复)

沙发

自己debug吧

这些代码我看都不会看一眼

因为写太多了,其他语言的,和vb都一样,

这些代码都是基本的,不用解释

板凳

刚才跟了尼洋一个帖子,提到了我的两个姥爷,其实他们是我亲姥爷的两个哥哥。这让我想起我的姥爷、以及他为什么没有南下的往事。
  姥爷要是活着的话,今年应该94。他逝世于14年前,周岁80。
  老爷有很多很多事,这个资源以后再好好利用,这里只说说作为一个老党员、老干部,他为什么没有随大军南下。
  这要从日寇攻下姥爷所在中原的那个县城开始,最主要的原因是日寇对姥姥的一次非常恐惧的刺激。
  姥爷所在的村紧紧毗邻着县城,就在城墙的西面,战略位置应该是很重要的[url=http://t.163.com/9119361601]导致阳痿形成原因[/url][url=http://t.sohu.com/u/1421547480]阳痿治疗[/url]。他是村干部,又是那支只有十数人的游击队的头儿,虽说没有干出什么惊天动地的大事,但为自己的组[url=http://t.qq.com/qyzzzl]前列腺炎症状及治疗[/url]织做出了很多很多事情,甚至在那本县志里也可以查到他的踪迹。
  有一次,汉奸带着日本人突然闯进姥爷的院子,捉拿姥爷,非常糟糕的是姥爷恰好被堵在了屋里,出是出不去了,姥姥吓出了一身冷汗。但她在绝望之际,急中生智,决定冒一次险,把老爷藏到了堂屋的太师椅下面(据后来姥姥说,那个时候的椅子周围好像搭着布帘,我没见过,文革的时候都被烧掉了)。鬼子伍长一进堂屋,姥姥赶快把他让在了太师椅上,给他端茶倒水、拿上点心。汉奸带着人找了半天,没有发现人,就威胁了姥姥几句,跟着鬼子走了,就这样,有惊无险,姥爷逃过一劫。
  但这件事,让姥姥着实受到了惊吓,因为她不断的看到那些被鬼子抓住砍了头的人,鲜血淋漓的脑袋被挂在城门上,这个刺激的结果就是姥姥严格的控制了姥爷的行动,说得不好听的话,就是拖后腿了。姥爷也没有办法,就这样一直到了抗日战争的胜利,姥爷始终没有远去,只是在家门附近躲藏。[url=http://t.qq.com/qyzxys]前列腺炎病因[/url]
  大军南下的时候,我的其他两个老爷都参加正规军南下了,姥姥死活是不让姥爷走,大概那个刺激的印痕还在。姥爷气的不得了,但最后还是部队的领导做工作,依了姥姥,姥爷没有走成。
  他们之间的感情很好,他们有8个孩子,5男3女,其中一个男孩,在襁褓中的时候,姥姥在磨坊磨面,把他放在了旁边,可不知道为什么,那头被捂着眼睛的驴大叫起来,当时姥姥没在意,一会儿当她再看孩子的时候,发现他一脸的惊恐,就这样一病不起,很快就夭折了。他要是活着,应该是我的三舅。
  后来姥爷姥姥的生活一直很平淡、很平静,他们的7个孩子都很有出息,只是一谈起来大军南下这件事,姥爷总会一声叹息,然后会说,我应该跟大军南下的。
  姥爷所说的南下部队,是刘邓大军,当时他们的司令部就在黄河岸边。
  姥爷的文化不高,就这样阴差阳错,做了一辈子村支书。剛才跟瞭尼洋一個帖子,提到瞭我的兩個姥爺,其實他們是我親姥爺的兩個哥哥。這讓我想起我的姥爺、以及他為什麼沒有南下的往事。
  姥爺要是活著的話,今年應該94。他逝世於14年前,周歲80。
  老爺有很多很多事,這個資源以後再好好利用,這裡隻說說作為一個老黨員、老幹部,他為什麼沒有隨大軍南下。
  這要從日寇攻[url=http://t.people.com.cn/mxqlxy]青年早泄[/url]下姥爺所在中原的那個縣城開始,最主要的原因是日寇對姥姥的一次非常[url=http://t.people.com.cn/gtynzhm]前列腺炎的治疗[/url]恐懼的刺激。
  姥爺所在的村緊緊毗鄰著縣城,就在城墻的西面,戰略位置應該是很重要的。他是村幹部,又是那支隻有十數人的遊擊隊的頭兒,雖說沒有幹出什麼驚天動地的大事,但為自己的組織做出瞭很多很多事情,甚至在那本縣志裡也可以查到他的蹤跡。
  有一次,漢奸帶著日本人突然闖進姥爺的院子,捉拿姥爺,非常糟糕的是姥爺恰好被堵在瞭屋裡,出是出不去瞭,姥姥嚇出瞭一身冷汗。但她在絕望之際,急中生智,決定冒一次[url=http://t.people.com.cn/bpgczy]包皮过长会怎样[/url]險,把老爺藏到瞭堂屋的太師椅下面(據後來姥姥說,那個時候的椅子周圍好像搭著佈簾,我沒見過,文革的時候都被燒掉瞭)。鬼子伍長一進堂屋,姥姥趕快把他讓在瞭太師椅上,給他端茶倒水、拿上點心。漢奸帶著人找瞭半天,沒有發現人,就威脅瞭姥姥幾句,跟著鬼子走瞭,就這樣,有驚無險,姥爺逃過一劫。
  但這件事[url=http://t.sohu.com/u/1424345428]阳痿病[/url],讓姥姥著實受到瞭驚嚇,因為她不斷的看到那些被鬼子抓住砍瞭頭的人,鮮血淋漓的腦袋被掛在城門上,這個刺激的結果就是姥姥嚴格的控制瞭姥爺的行動,說得不好聽的話,就是拖後腿瞭。姥爺也沒有辦法,就這樣一直到瞭抗日戰爭的勝利,姥爺始終沒有遠去,隻是在傢門附近躲藏。
  大軍南下的時候,我的其他兩個老爺都參加正規軍南下瞭,姥姥死活是不讓姥爺走,大概那個刺激的印痕還在。姥爺氣的不得瞭,但最後還是部隊的領導做工作,依瞭姥姥,姥爺沒有走成。
  他們之間的感情很好,他們有8個孩子,5男3女,其中一個男孩,在襁褓中的時候,姥姥在磨坊磨面,把他放在瞭旁邊,可不知道為什麼,那頭被捂著眼睛的驢大叫起來,當時姥姥沒在意,一會兒當她再看孩子的時候,發現他一臉的驚恐,就這樣一病不起,很快就夭折瞭。他要是活著,應該是我的三舅。
  後來姥爺姥姥的生活一直很平淡、很平靜,他們的7個孩子都很有出息,隻是一談起來大軍南下這件事,姥爺總會一聲嘆息,然後會說,我應該跟大軍南下的。
  姥爺所說的南下部隊,是劉鄧大軍,當時他們的司令部就在黃河岸邊。
  姥爺的文化不高,就這樣陰差陽錯,做瞭一輩子村支書。

我来回复

您尚未登录,请登录后再回复。点此登录或注册