要求,很简单,如下:
1、提供题目录入,录入时可以进行分类选择(个人必答题,团队必答题,抢答题,风险题)
2、提供按条件随机抽题,每次抽一个题目,由主持人宣读,等参赛选手答题结束后,点“参考答案”按钮,弹出参考答案
3、不需要自动计分,不需要自动计时,
4、其他要求:框架和显示的字体尽量大一些,使得在投影屏幕上投影的时候观众能清楚看见题目拜谢了,,
小弟没有学过VB,手头又没有VB的资料,所以只能来这里求解了,,还望达人能同情我,帮助我

解决方案 »

  1.   

    提供思路:
    首先建立一个表,有4个字段(题目ID,题目类型,题目内容,题目答案)
    1.录入界面:
      提供题目录入:用一个TextBox就行
      录入时可以进行分类选择:用4个OptionButton
      用一个Button按钮提交数据到表中
    2.抽题界面:
      用一个Button按钮从表中抽题,另一个Button按钮查答案
    3.什么都不用做
    4.可以用一个来显示Label题目,另一个Label显示答案,给Label设置适当的字体和颜色
      

  2.   

    首先建立一个表,有4个字段(题目ID,题目类型,题目内容,题目答案)
    sql语句
    select top1 from 表 where 题目类型="选择类型" order by newid()后台必须是sql_server数据库]
    其他的都是ado操作,自己写吧
      

  3.   

    1.使用Access建数据库,名称为Test.mdb,建一个表,表名称:TableQuestion 表包含3个字段:qType qContent qAnswer
    2.新建一个工程,用来录入题目,在菜单“工程”-->"引用"-->"Microsoft ActiveX Data Objects 2.5 Library"
    窗体:Form1,窗体上的控件:一个ComboBox名称为:cmbQType,两个TextBox ,名称分别为:txtContent和txtAnswer,一个CommandButton ,名称为cmdSave
    窗体代码:
    Private Function ExecuteSQL(ByVal strSql As String) As ADODB.Recordset
        Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, curPath As String
        curPath = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curPath & "test.mdb;Persist Security Info=False"
        cn.CursorLocation = adUseClient
        cn.Open
        rs.Open strSql, cn, 3, 2
        Set ExecuteSQL = rs
        Set rs = Nothing
        Set cn = Nothing
    End Function
    '添加题目
    Private Sub cmdSave_Click()
        If Trim(cmbQType.Text = "") Or Trim(txtContent.Text = "") Or Trim(txtAnswer.Text = "") Then
            MsgBox "内容必须填写完整!"
            Exit Sub
        End If
        Dim rs As New ADODB.Recordset
        Set rs = ExecuteSQL("select * from TableQuestion where qType='" & Trim(cmbQType.Text) & "' and qContent='" & Trim(txtContent.Text) & "'")
        If Not rs.EOF Then
            MsgBox "改题目已存在!", vbInformation, "提示"
            txtContent.SetFocus
            txtContent.SelStart = 0
            txtContent.SelLength = Len(txtContent.Text)
            Exit Sub
        End If
        Dim strSql As String
        strSql = "insert into TableQuestion values("
        strSql = strSql & "'" & cmbQType.Text & "','" & txtContent.Text & "','" & txtAnswer.Text & "')"
        Call ExecuteSQL(strSql)
        Set rs = Nothing
        MsgBox "记录添加成功!", vbInformation, "提示"
    End SubPrivate Sub cmbQType_DropDown()
        cmbQType.Clear
        cmbQType.AddItem "个人必答题"
        cmbQType.AddItem "团队必答题"
        cmbQType.AddItem "抢答题"
        cmbQType.AddItem "风险题"
    End SubPrivate Sub Form_Load()
        cmdSave.Caption = "保存题目"
        cmbQType.Text = ""
        txtContent.Text = ""
        txtAnswer.Text = ""
    End Sub
    --------------------------
    3.另新建一工程,用来抽题,在菜单“工程”-->"引用"-->"Microsoft ActiveX Data Objects 2.5 Library"
    窗体:Form1,窗体上的控件:一个CheckBox,名称:chkNonRepeat,用来决定是否把抽过的题目删除,以免抽取重复的题目,两个Label,名称分别为:lblContent和lblAnswer,一个ComboBox,名称为:cmbType,两个CommandButton,名称分别为:cmdQuestion和cmdAnswer
    窗体代码:
    Private Function ExecuteSQL(ByVal strSql As String) As ADODB.Recordset
        Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, curPath As String
        curPath = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curPath & "test.mdb;Persist Security Info=False"
        cn.CursorLocation = adUseClient
        cn.Open
        rs.Open strSql, cn, 3, 2
        Set ExecuteSQL = rs
        Set rs = Nothing
        Set cn = Nothing
    End FunctionPrivate Sub Form_Load()
        cmdQuestion.Caption = "抽题"
        cmdAnswer.Caption = "答案"
        chkNonRepeat.Caption = "去除重复记录"
        cmbType.Text = ""
        With lblContent
            .Caption = ""
            .Visible = False
            .FontSize = 24
            .ForeColor = vbRed
        End With
        With lblAnswer
            .Caption = ""
            .Visible = False
            .FontSize = 24
            .ForeColor = vbRed
        End With
        
    End SubPrivate Sub cmbType_DropDown()
        Dim rs As New ADODB.Recordset
        Set rs = ExecuteSQL("select distinct qType from TableQuestion")
        cmbType.Clear
        While Not rs.EOF
            cmbType.AddItem rs("qtype")
            rs.MoveNext
        Wend
        If rs.State = adStateOpen Then rs.Close
        Set rs = Nothing
    End SubPrivate Sub cmdAnswer_Click()
        If lblContent.Visible Then
            lblAnswer.Visible = True
        Else
            lblAnswer.Visible = False
        End If
    End SubPrivate Sub cmdQuestion_Click()
        On Error Resume Next
        lblContent.Visible = False
        lblAnswer.Visible = False
        Dim rs As New ADODB.Recordset, rndNum As Long
        Set rs = ExecuteSQL("select qContent,qAnswer from TableQuestion where qType='" & cmbType.Text & "'")
        If rs.EOF Then Exit Sub
        VBA.Randomize Now
        rndNum = Val(Rnd() * rs.RecordCount) - 1
        Debug.Print rndNum
        rs.Move rndNum
        lblContent.Caption = rs("qContent")
        lblAnswer.Caption = rs("qAnswer")
        lblContent.Visible = True
        If chkNonRepeat.Value = 1 Then rs.Delete adAffectCurrent
        If rs.State = adStateOpen Then rs.Close
        Set rs = Nothing
    End Sub