要求,很简单,如下:
1、提供题目录入,录入时可以进行分类选择(个人必答题,团队必答题,抢答题,风险题)
2、提供按条件随机抽题,每次抽一个题目,由主持人宣读,等参赛选手答题结束后,点“参考答案”按钮,弹出参考答案
3、不需要自动计分,不需要自动计时,
4、其他要求:框架和显示的字体尽量大一些,使得在投影屏幕上投影的时候观众能清楚看见题目拜谢了,,
小弟没有学过VB,手头又没有VB的资料,所以只能来这里求解了,,还望达人能同情我,帮助我
1、提供题目录入,录入时可以进行分类选择(个人必答题,团队必答题,抢答题,风险题)
2、提供按条件随机抽题,每次抽一个题目,由主持人宣读,等参赛选手答题结束后,点“参考答案”按钮,弹出参考答案
3、不需要自动计分,不需要自动计时,
4、其他要求:框架和显示的字体尽量大一些,使得在投影屏幕上投影的时候观众能清楚看见题目拜谢了,,
小弟没有学过VB,手头又没有VB的资料,所以只能来这里求解了,,还望达人能同情我,帮助我
解决方案 »
- 测试你古代的地位 99%的人会笑死
- vb command 控件添加图片
- 4.有一个英语单词保存在变量Word中,通过键盘输入一个字符串,判断该字符串是不是Word的子串,如果是则给出子串在Word中的起始位置,然后停止查找。例如Word="preposition",则sit就是Word的一个子串,其起始位置为6。(要求使用Do
- vb超级难题!发送手机短信
- 怎样用vsflexgrid做出这样的表头?
- 用datareport 根据日期动态打印报表
- 郁闷,居然有这种人
- 请教:如何用winsock获得对方的虚拟IP?
- 在用户控件工程中,模块中如何调用用户控件中的过程或其它控件的属性?很急!
- 有关vb处理位图的题目,急~~
- 紧急求助,在线等呀
- vb中有类似memset( &Ncb, 0, sizeof(Ncb) );的方法吗?
首先建立一个表,有4个字段(题目ID,题目类型,题目内容,题目答案)
1.录入界面:
提供题目录入:用一个TextBox就行
录入时可以进行分类选择:用4个OptionButton
用一个Button按钮提交数据到表中
2.抽题界面:
用一个Button按钮从表中抽题,另一个Button按钮查答案
3.什么都不用做
4.可以用一个来显示Label题目,另一个Label显示答案,给Label设置适当的字体和颜色
sql语句
select top1 from 表 where 题目类型="选择类型" order by newid()后台必须是sql_server数据库]
其他的都是ado操作,自己写吧
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