我有一个包含大约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不会显示
如果有兴趣的话,对我有用的解决方案
答案 0 :(得分:1)
我必须假设您的问题有一个自动编号字段,您的可能答案是否具有基于该自动编号字段的一对多连接,并且您的答案基于该自动编号字段具有一对一连接?这将是关联表格的最佳方式。
如果是这样,请尝试以下方法:
SELECT Top 10 Question_ID FROM tblQuestions ORDER BY RND(Question_ID)
这应该为您提供前10个随机选择的Question_ID(或者您正在调用我上面谈到的AutoNumber字段的任何内容),然后您可以根据该ID连接到Questions / Possible Answers / Answers表。您只需根据上面的SQL填充表单或子表单,以显示问题。