程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於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
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved