1

我有一个包含大约 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

文本框不改变,msgBox 不显示


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

SELECT Top 10 ID_Question, Question_Name 
FROM tblQuestions 
ORDER BY RND(-(100000*ID_Question)*Time())
4

1 回答 1

1

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

如果是这样,请尝试以下操作:

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

这应该为您提供前 10 个随机选择的 Question_ID(或任何您称之为我上面谈到的 AutoNumber 字段),然后您可以根据该 ID 离开加入到 Questions/Possible Answers/Answers 表中。您只需根据上面的 SQL 填充表单或子表单以显示问题。

于 2015-01-26T19:26:22.600 回答