如何从Access数据库中随机选择select道选择题
How to randomly select multiple choice questions from Access database
我有一个包含大约 30 个问题的 Access 数据库。数据库分为3个表;问题,可能的答案和答案。
这些问题有 2 到 5 个可能的答案。
我如何从我的数据库中随机 select 10 个问题并将它们添加到我的 vb 表单中?
PS: 这是我第一次这样做
这是我的代码
昏暗的提供者作为字符串
将数据文件调暗为字符串
将 connString 变暗为字符串
Public myConnection As OleDbConnection = New OleDbConnection
Public 博士作为 OleDbDataReader
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Users\Phil\Desktop\Questions.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
myConnection.Open()
Dim str As String
str = "SELECT Top 10 ID_Question From Questions ORDER BY RND(ID_Question)"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
dr = cmd.ExecuteReader
While dr.Read()
TextBox1.Text = dr("ID_Question").ToString
End While
myConnection.Close()
MsgBox("fsafa")
End Sub
Textbox 没有变化,msgBox 没有显示
如果有人感兴趣的话,对我有用的解决方案
SELECT Top 10 ID_Question, Question_Name
FROM tblQuestions
ORDER BY RND(-(100000*ID_Question)*Time())
我必须假设您的问题有一个自动编号字段,您的可能答案有一个基于该自动编号字段的一对多联接,而您的答案有一个基于该自动编号字段的一对一联接?这将是关联表格的最佳方式。
如果是这样,请尝试这样的操作:
SELECT Top 10 Question_ID FROM tblQuestions ORDER BY RND(Question_ID)
这应该会为您提供随机选择的前 10 个 Question_IDs(或者您所说的我上面提到的自动编号字段),然后您可以左键加入 Questions/Possible Answers/Answers 基于该 ID 的表。您只需根据上面的 SQL 填充表单或子表单即可显示问题。
我有一个包含大约 30 个问题的 Access 数据库。数据库分为3个表;问题,可能的答案和答案。 这些问题有 2 到 5 个可能的答案。 我如何从我的数据库中随机 select 10 个问题并将它们添加到我的 vb 表单中?
PS: 这是我第一次这样做
这是我的代码
昏暗的提供者作为字符串
将数据文件调暗为字符串
将 connString 变暗为字符串
Public myConnection As OleDbConnection = New OleDbConnection
Public 博士作为 OleDbDataReader
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Users\Phil\Desktop\Questions.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
myConnection.Open()
Dim str As String
str = "SELECT Top 10 ID_Question From Questions ORDER BY RND(ID_Question)"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
dr = cmd.ExecuteReader
While dr.Read()
TextBox1.Text = dr("ID_Question").ToString
End While
myConnection.Close()
MsgBox("fsafa")
End Sub
Textbox 没有变化,msgBox 没有显示
如果有人感兴趣的话,对我有用的解决方案
SELECT Top 10 ID_Question, Question_Name
FROM tblQuestions
ORDER BY RND(-(100000*ID_Question)*Time())
我必须假设您的问题有一个自动编号字段,您的可能答案有一个基于该自动编号字段的一对多联接,而您的答案有一个基于该自动编号字段的一对一联接?这将是关联表格的最佳方式。
如果是这样,请尝试这样的操作:
SELECT Top 10 Question_ID FROM tblQuestions ORDER BY RND(Question_ID)
这应该会为您提供随机选择的前 10 个 Question_IDs(或者您所说的我上面提到的自动编号字段),然后您可以左键加入 Questions/Possible Answers/Answers 基于该 ID 的表。您只需根据上面的 SQL 填充表单或子表单即可显示问题。