如何从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 填充表单或子表单即可显示问题。