在vb6中随机生成40个问题?请帮帮我

在vb6中随机生成40个问题?请帮帮我,vb6,random,Vb6,Random,我一直在尝试创建一个vb6代码,将随机10个问题,但它不起作用。我使用sql作为我的数据库 这是我的密码: Private Sub cmdNext_Click() Dim real_ans As String Dim nCnt As Integer 'nCnt = nCnt + 2 'Label3.Caption = nCnt real_ans = Adodc1.Recordset.Fields("answer") With Adodc2.Recordset Dim grade As Str

我一直在尝试创建一个vb6代码,将随机10个问题,但它不起作用。我使用sql作为我的数据库

这是我的密码:

Private Sub cmdNext_Click()
Dim real_ans As String
Dim nCnt As Integer
'nCnt = nCnt + 2
'Label3.Caption = nCnt
real_ans = Adodc1.Recordset.Fields("answer")
 With Adodc2.Recordset
 Dim grade As String

If (real_ans = "A" And Option1.Value = True) Or (real_ans = "B" And Option2.Value = True) Or (real_ans = "C" And Option3.Value = True) Or (real_ans = "D" And Option4.Value = True) Then
    .Fields("english_score").Value = .Fields("english_score").Value + 1
     nEnglish_score = Adodc2.Recordset.Fields("english_score").Value
     Select Case nEnglish_score
Case Is >= 7 'If score above 80...
    grade = "genius" 'Give an A
    With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 6 'If score above 70...
    grade = "Superior " 'Give a B
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 5 'If score above 60...
    grade = "High Average" 'Give a C
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 4 'If score above 50...
    grade = "Average" 'Give a D
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 3 'If score above 40...
    grade = "Low Average " 'Give a E
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 2 'If score above 30...
    grade = "Moron" 'Give a F
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Is >= 1 'If score above 20...
    grade = "Idiot " 'Give a G
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
    End With
Case Else 'Else
    grade = "xxxx" 'Give a G
     With Adodc2.Recordset
    .Fields("IQ").Value = grade
     .Update
    End With
End Select

     End If
    Adodc1.Recordset.MoveNext
    End With



End Sub

Private Sub Command1_Click()
frmExam2.Show
frmExam2.SetFocus
End Sub

Private Sub Form_Initialize()
Command1.Enabled = False
With Adodc2.Recordset
.AddNew
.Fields("name").Value = cStudent_Name
.Fields("section").Value = cStudent_Section
.Fields("english_score").Value = "0"
.Fields("math_score").Value = "0"
.Fields("abstract").Value = "0"
.Fields("total_average").Value = "0"
.Fields("IQ").Value = "0"
.Update
End With
End Sub

Private Sub Text1_Change()
If Text1.Text <> "" Then
cmdNext.Enabled = True
Else
Command1.Enabled = True
 cmdNext.Enabled = False
End If
End Sub
Private Sub-cmdNext\u Click()
模糊的实数为字符串
作为整数的Dim nCnt
'nCnt=nCnt+2
'Label3.Caption=nCnt
real_ans=Adodc1.Recordset.Fields(“应答”)
使用Adodc2.Recordset
将等级设置为字符串
如果(real_ans=“A”和Option1.Value=True)或(real_ans=“B”和Option2.Value=True)或(real_ans=“C”和Option3.Value=True)或(real_ans=“D”和Option4.Value=True),则
.Fields(“英语分数”).Value=.Fields(“英语分数”).Value+1
nEnglish_分数=Adodc2.记录集.字段(“英语_分数”).值
选择案例nEnglish_分数
如果得分高于80,则案例>=7'。。。
grade=“genius”得A
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于70,则案例>=6'。。。
grade=“Superior”打B
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于60分,则案例>=5分。。。
grade=“高平均值”得C分
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于50,则案例>=4'。。。
grade=“Average”给出一个D
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于40分,则案例>=3'。。。
grade=“低平均值”给出E
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于30,则案例>=2'。。。
grade=“笨蛋”打F
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
如果得分高于20,则案例>=1。。。
grade=“Idiot”给出一个G
使用Adodc2.Recordset
.字段(“IQ”).值=等级
以
其他人的情况
grade=“xxxx”给出一个G
使用Adodc2.Recordset
.字段(“IQ”).值=等级
.更新
以
结束选择
如果结束
Adodc1.Recordset.MoveNext
以
端接头
专用子命令1_Click()
frmExam2.显示
frmExam2.SetFocus
端接头
私有子表单_初始化()
Command1.Enabled=False
使用Adodc2.Recordset
.AddNew
.Fields(“name”).Value=cStudent\u name
.Fields(“节”).Value=cStudent\u节
.Fields(“英语分数”).Value=“0”
.Fields(“数学分数”).Value=“0”
.Fields(“摘要”).Value=“0”
.Fields(“总平均值”).Value=“0”
.Fields(“IQ”).Value=“0”
.更新
以
端接头
私有子文本1_Change()
如果Text 1.Text“”,则
cmdNext.Enabled=True
其他的
Command1.Enabled=True
cmdNext.Enabled=False
如果结束
端接头

请帮助我,我想不出是什么问题。

是的,错误信息是什么

  • 使用此“with”不会节省任何空间:
  • 您可以将该代码块删除到底(在end Select之后),因为它在每一个Case语句中都会出现。 因此,将其压缩为:
  • 为什么不以相同的方式存储选项值和答案,以便只进行一次比较,如: 如果real_ans=OptionValue,则
  • 对于随机数,请尝试以下操作:

    Function Rand(max As Long, Optional Min As Long) As Long
    
            Dim s As Single
            s = Rnd(1) * (max - Min + 1) + Min - 0.5
            Rand = CLng(Round(s, 0))
    
    
    End Function
    

    在你的表格中加入“随机加载”

    在这类问题中,错误描述总是很好的:)没有错误,我不知道如何随机分配问题这里是从数据库中提取10个问题的代码?嗯。。如果没有错误,为什么要在此处发布P错误不需要是异常或类似情况,只需描述运行代码时发生的情况,与预期的情况相反:)
    Adodc2.Recordset.Fields("IQ").Value = grade
    
    Function Rand(max As Long, Optional Min As Long) As Long
    
            Dim s As Single
            s = Rnd(1) * (max - Min + 1) + Min - 0.5
            Rand = CLng(Round(s, 0))
    
    
    End Function