Access SQL如何随机选择一组连续的行

时间:2013-12-27 19:31:13

标签: sql vba ms-access ado

可以这样做,比如我有行(1,2,3,4,5),我想抓三行,随机选择一行,然后得到它的邻居,所以也许随机选择是如果我想要它的邻居,我也可以抓取(2,4),我只是随机选择一个然后在这样的前后查找唯一键,或者我可以在一个sql语句中完成所有操作。

我打算使用excel中的ADO来拉取记录(所以VBA连接到访问,用sql指令打开记录集等等。)

希望我很清楚!

我希望在SQL语句中完成所有这些操作

1 个答案:

答案 0 :(得分:1)

我不确定Access是否能够使用SQL Server等所有SQL命令,因此这可能有点问题。如果你有一个主键,你可以很容易地在VBA中生成一个Select查询,然后用这个SQL传递open recordset。

Dim sSQL as String
Dim lRand as Long
Dim rs as ADODB.Recordset 'or DAO.Recordset'
lRand = VBA.Int(VBA.Rnd() * TableRecordCount) ' TableRecordCount is the number of records in the table that you need to get somehow'
sSQL = "SELECT * FROM TableName WHERE (ID>=" & lRand - 1 & " AND ID <=" & lRand + 1
set rs = CurrentDB.OpenRecordset(sSQL, ...)

我现在不完全确定你想要使用什么,并且根据ADODB或DAO的选择,你需要相应地打开记录集,Call rs.OpenSet rs = DB.OpenRecordset