access实现limit分页

来源:互联网 发布:网络兼职论坛发帖 编辑:程序博客网 时间:2024/06/05 11:20

由于access里面没有mysql的limit语句进行分页,所有我们可以使用top语句来实现分页功能。access的top是用来获取记录集的前几个的。

先定义一下变量

size---单页的记录数

page---页数,从2开始 (第一页需要特殊处理)

我们先获取包括当前页的前几页的记录集A:  select top (page*size)  * from [table] order by [date] desc

然后再获取一下当前页之前的所有记录集B:select top ((page-1)*size)  [主键]  from [table] order by [date] desc 

最后我们把记录集A-记录集B剩下的就是我们要的第page页的记录集  :select top size * from (A)  where [主键] not in (B) order by [date] desc


完整的sql语句是   select top size * from (select top (page*size)  * from [table] order by [date] desc)  where [主键] not in (select top ((page-1)*size)  [主键]  from [table] order by [date] desc ) order by [date] desc


注意:由于top 0是无法使用的所有在获取第一页的时候  直接使用 top size就行了