Access隨機顯示記錄(不重復)解決方案:
看了很多人討論關于access隨機取記錄的帖子,不才,寫了一個隨機顯示記錄的解決方法,希望大家指正。數據庫里有5條記錄,隨機抽取4條。
<% '-------------------------數據庫連接----------------------- 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.Closeset objRs=nothingobjConn.Closeset objConn=nothing'---------------------------%>
code
--------------------------------------
id DataColumn--------------------------1 a2 b3 c4 d5 e
Data
新聞熱點
疑難解答