我设置了rs.PageSize = 20,记录有21条,rs.RecordCount=21,rs.PageCount=2,但是所有的还是显示在一页上面,而且rs.AbsolutePage=-3,Access数据库的连接我放在一个公共模块里做了一个函数,按照网上的方法,在函数里设置rs.cursorlocation=3
rs.open strsql,conn,3,1
rs.AbsolutePage总是等于-3,总结一下我的问题:1)查询结果理论上是分页了,但是在msflexgrid里不分页;2)rs.AbsolutePage=-3不知何解。希望高手指教!
rs.open strsql,conn,3,1
rs.AbsolutePage总是等于-3,总结一下我的问题:1)查询结果理论上是分页了,但是在msflexgrid里不分页;2)rs.AbsolutePage=-3不知何解。希望高手指教!
解决方案 »
- vb access导出数据到word 并根据其中一组数据绘制曲线
- 如何获得一个单元格下边框以及右边框的坐标?
- 完全动态的二位数组怎么定义?
- MSHFlexGrid里用文本框编辑数据,但是调整MSHFlexGrid的列宽或者变动其列位置时,如何使text控件的大小与位置也相应改变
- datagrid不能正常显示数据问题,火急~~多分~~
- 用VB自带的打包工具打包后,安装出现的错误
- 引用了sqldmo后在客户端安装,运行时提示“实时错误429,ActiveX无法创建对象”,怎么解决,请大家帮忙
- 动态创建了一个DATA 为什么对它进行的操作出现错误呢?
- VB.NET 中当我运行程序的时候,它根本不管我的窗体,从别处调用了个相同名字的窗体,怎么除掉这个引用啊?
- 求助]如何把数据库内两个表合并?
- 如何实现模拟鼠标点击网页超连接或按钮
- 求助VB高手:需要引用的vbshell.tlb在哪引用?
解决的办法是使用SQL语句或存储查询实现真正的分页后再显示,比如俺写的一个分页查询:
CREATE PROCEDURE PROC_PAGINATION
@查询日期 DATETIME,
@查询条件 NVARCHAR(100),
@分页大小 INT,
@分页序号 INT
AS
DECLARE @strSQL NVARCHAR(1000) SET @strSQL='
DECLARE @查询日期 DATETIME;
SET @查询日期='+''''+CONVERT(VARCHAR(10),@查询日期,120)+''''+';
SELECT
A.机构名称 信用社,A.合同编号,B.客户名称,CONVERT(VARCHAR(10),B.借款日期,120) 借款日期,CONVERT(VARCHAR(10),B.到期日期,120) 到期日期,
B.借款方式,CAST(B.借款利率 AS DECIMAL(6,3)) 利率,'+''''+'¥'+''''+'+CONVERT(NVARCHAR,B.借款金额,1) 借款金额,CONVERT(VARCHAR(10),B.清息日期,120) 最后清息日,
CONVERT(VARCHAR(10),B.止息日期,120) 最后清息止,'+''''+'¥'+''''+'+CONVERT(NVARCHAR,B.借款余额,1) 结欠金额,B.会计科目 科目,B.五级分类 形态,
B.审批人,B.经放人,B.清收人
FROM
(
SELECT TOP '+CAST(@分页大小 AS NVARCHAR(10))+'
A.机构代码,A.合同编号,B.机构名称,A.结帐日期
FROM
(
SELECT TOP '+CAST(@分页大小*@分页序号 AS NVARCHAR(10))+'
A.机构代码,A.合同编号,A.结帐日期
FROM
分户_借款合同_余额信息 A
WHERE
'+@查询条件+' AND 结帐日期=(SELECT MAX(结帐日期) FROM 分户_借款合同_结帐日期 WHERE 机构代码=A.机构代码 AND 合同编号=A.合同编号 AND 结帐日期<=@查询日期)
ORDER BY
A.机构代码,A.合同编号 ASC
) A
INNER JOIN
系统_机构信息 B
ON
B.机构代码=A.机构代码
ORDER BY
A.机构代码,A.合同编号 DESC
) A
INNER JOIN
分户_借款合同_余额信息 B
ON
B.机构代码=A.机构代码 AND B.合同编号=A.合同编号 AND B.结帐日期=A.结帐日期 AND A.结帐日期 IS NOT NULL
ORDER BY
B.机构代码,B.合同编号
'
--PRINT @strSQL
EXEC sp_executesql @strSQL
给你一段MSDN上的代码
虽然不是给msflexgrid用
但可以参考一下Public Sub AbsolutePageX()
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
Dim strMessage As String
Dim intPage As Integer
Dim intPageCount As Integer
Dim intRecord As Integer ' Open a recordset using a client cursor
' for the employee table.
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "
Set rstEmployees = New ADODB.Recordset
' Use client cursor to enable AbsolutePosition property.
rstEmployees.CursorLocation = adUseClient
rstEmployees.Open "employee", strCnn, , , adCmdTable
' Display names and hire dates, five records
' at a time.
rstEmployees.PageSize = 5
intPageCount = rstEmployees.PageCount
For intPage = 1 To intPageCount
rstEmployees.AbsolutePage = intPage
strMessage = ""
For intRecord = 1 To rstEmployees.PageSize
strMessage = strMessage & _
rstEmployees!fname & " " & _
rstEmployees!lname & " " & _
rstEmployees!hire_date & vbCr
rstEmployees.MoveNext
If rstEmployees.EOF Then Exit For
Next intRecord
MsgBox strMessage
Next intPage
rstEmployees.CloseEnd Sub