簡體   English   中英

將其連接到VS2017項目后,如何從MS Access中選擇隨機記錄?

[英]How to choose a random record from MS Access after connecting it to a VS2017 project?

我想知道在Visual Studio 2017中使用“連接到數據庫”工具后是否有選擇隨機記錄的方法。我試圖選擇1到21之間的隨機記錄。MS訪問數據庫具有QNumber(主鍵) ,問題,答案1,答案2,答案3和答案4。 QNumber是一個數字,而其他每個都是文本。

我嘗試使用Microsoft官方網站上的此代碼。

Dim MyValue As Integer
MyValue = Int((6 * Rnd) + 1)    ' Generate random value between 1 and 6. 

但是,我不確定如何將其應用於我的情況。

自從使用“連接到數據庫”工具以來,我就使用以下代碼從MS Access數據庫插入數據以填充我的文本框:

txtQNumber.DataBindings.Add("Text", QuizDataSet, "Quiz.QNumber")
txtQ.DataBindings.Add("Text", QuizDataSet, "Quiz.Question")
txtAnswer.DataBindings.Add("Text", QuizDataSet, "Quiz.Answer1")
txtAnswer2.DataBindings.Add("Text", QuizDataSet, "Quiz.Answer2")
txtAnswer3.DataBindings.Add("Text", QuizDataSet, "Quiz.Answer3")
txtAnswer4.DataBindings.Add("Text", QuizDataSet, "Quiz.Answer4")

下面的代碼顯示了我在回答10個問題后為停止測驗所做的工作。 單擊“前進”按鈕后,問題如何進行處理,即“ BindingContext ..”位。

Answered = 0

Private Sub cmdForward_Click(sender As Object, e As EventArgs) Handles cmdForward.Click

        BindingContext(QuizDataSet, "Quiz").Position = BindingContext(QuizDataSet, "Quiz").Position + 1

Answered = Answered + 1

If Answered = 10 Then
    End
End If 

到目前為止,文本框的輸出非常線性-從QNumber 1開始,移到QNumber 2,依此類推,然后轉到QNumber10。我希望它是隨機的。 例如,它從QNumber 15開始,移至QNumber 6,然后結束於QNumber 19或類似的名稱。

我以為我必須使用預先顯示的.Position,但同樣,我不確定,因此非常感謝任何幫助。

您可以修改SQL查詢以為每個記錄包括一個偽隨機值:

Select *, Rnd(-Timer() * [ID]) As RandomNumber 
From YourTable

其中ID是主鍵。 然后對RandomNumber進行排序。

或者,您可以讓查詢排序:

Select *
From YourTable
Order By Rnd(-Timer() * [ID]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM