如何从Access数据库中随机选择多项选择题

时间:2015-01-26 15:03:54

标签: database vb.net visual-studio-2010 ms-access multiple-choice

我有一个包含大约30个问题的Access数据库。数据库分为3个表格;问题,可能的答案和答案。 问题有2到5个可能的答案。 如何从我的数据库中随机选择10个问题并将它们添加到我的vb表单中?

PS:这是我第一次这样做

这是我的代码

Dim provider As String Dim dataFile As String Dim connString As String Public myConnection As OleDbConnection = New OleDbConnection Public dr As 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

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

文本框不会更改,并且msgBox不会显示


如果有兴趣的话,对我有用的解决方案

1 个答案:

答案 0 :(得分:1)

我必须假设您的问题有一个自动编号字段,您的可能答案是否具有基于该自动编号字段的一对多连接,并且您的答案基于该自动编号字段具有一对一连接?这将是关联表格的最佳方式。

如果是这样,请尝试以下方法:

SELECT Top 10 Question_ID FROM tblQuestions ORDER BY RND(Question_ID)

这应该为您提供前10个随机选择的Question_ID(或者您正在调用我上面谈到的AutoNumber字段的任何内容),然后您可以根据该ID连接到Questions / Possible Answers / Answers表。您只需根据上面的SQL填充表单或子表单,以显示问题。