|
每组选Top 2,对于access来说,确实是一件比较头疼的事情。
如果用查询的话,一般可能需要建立多个查询,或者联合查询,写起来容易出错。另一种方法是使用ADO来处理。
详细见附件。
附上ADO语句
- Function Topx_ADO(ByVal x As Long)
- Dim rst1 As New ADODB.Recordset
- Dim rst2 As New ADODB.Recordset
- rst1.Open "select distinct ProCate from [2016-测试表]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
-
- Do Until rst1.EOF
- rst2.Open "select top2 from [2016-测试表] where ProCate='" & rst1(0) & "' order by AmountMUSD desc", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
-
- Do Until rst2.AbsolutePosition > x
- top2 = True
- rst2.MoveNext
- Loop
- Debug.Print rst1(0)
- rst2.Close
- rst1.MoveNext
- Loop
- rst1.Close
- End Function
- '运行test后再筛选top2为True的数据即可。
- Sub test()
- Call Topx_ADO(2)
- End Sub
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|