程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> Access隨機抽取數據庫中的記錄方法

Access隨機抽取數據庫中的記錄方法

編輯:關於Access數據庫
  • Access隨機抽取數據庫中的記錄方法

    數據庫裡有5條記錄,隨機抽取4條。

    code
    --------------------------------------
    <%
    '-------------------------數據庫連接-----------------------
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
    "Data Source=" & Server.MapPath("data.mdb")
    objConn.Open
    '-------------------------數據庫連接-----------------------

    '-------------------------檢索數據-----------------------
    strSQL = "SELECT id,DataColumn FROM DataTable"
    'Sql語句,檢索數據庫
    Set objRS = Server.CreateObject("ADODB.Recordset")   
    '創建記錄集
    objRS.Open strSQL, objConn, 1, 1  
    '執行檢索
    Count=objRS.RecordCount   
    '得到記錄總數
    Item=4                                                  
    '顯示記錄數
    '-------------------------檢索數據-----------------------

    '-------------------------------------------------------------------------------
    redim a(Item, 2),t(Count)
    '定義2數組,數組a用來儲存記錄,數組t用來刪選記錄

    '---------------------------------------
    '初始數組數值,目的為了插入數據以後和此值做比較
    for each j in t
        j=0
    next
    '---------------------------------------

    '---------------------------------------
    ' 隨機抽取記錄號
    Randomize timer   '初始化隨機數生成器
    for j=1 to Item
        k=int(rnd*Count+1) '從總數裡面隨機取一條記錄
        do while t(k)<>0                 '判斷是否記錄是否已經在數組中
          k=int(rnd*Item+1)
        loop
        t(k)=1    '第k條記錄被選中
    next
    '--------------------------------------
    j=1:i=1'定義下標

    '--------------------------------------
    ' 循環選取數據集objRS中的部分記錄存放到數組中
    Do While Not objRS.Eof
       if t(j)=1 then
        a(i,1)=objRS("id")           '記錄id
        a(i,2)=objRS("DataColumn") '記錄內容
        i=i+1
    end if
    j=j+1
    objRS.MoveNext
    Loop
    '--------------------------------------
    '-------------------------------------------------------------------------------

    '----------------------------顯示內容--------------------
    for i=1 to Item
    Response.write "序號"&a(i,1)&"<br>"
    Response.write "內容"&a(i,2)&"<p>"
    next
    '----------------------------顯示內容--------------------

    '---------------------------
    '釋放資源
    objRs.Close
    set objRs=nothing
    objConn.Close
    set objConn=nothing
    '---------------------------
    %>

    Data
    id    DataColumn
    --------------------------
    1        a
    2        b
    3        c
    4        d
    5        e

    // SQL Server的話只需要newID()就行了,但Access來說,它本身不提供newID()這個方法

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved