当前位置:编程学习 > VB >>

我用vb写的程序,datagrid分页显示,最后一页不知道怎么处理?

我用vb写的程序,datagrid分页显示,最后一页不知道怎么处理? 当记录数不是nPageSize (每页显示的纪录)的整数倍的时候,就出现错误了,该怎么写语句修复啊??热心的人帮帮 --------------------编程问答-------------------- --------------------编程问答-------------------- 大家都给点意见啊!!
--------------------编程问答-------------------- '自定义分页过程
Private Sub Controllv(lCurrentPage As Integer)
        Dim PageCount As Integer
        Rs4.PageSize = 5
        PageCount = Rs4.PageCount
        
        If Rs4.RecordCount = 0 Then Exit Sub
        If lCurrentPage > PageCount Then
            CurrentPage = PageCount
        End If
        
        Rs4.AbsolutePage = CurrentPage
        Dim Litm As ListItem
        ListView1.ListItems.Clear
       
        'Rs4.MoveFirst
        For i = 1 To Rs4.PageSize
            Set Litm = ListView1.ListItems.Add()
                Litm.Text = Rs4.Fields(1).Value
                Litm.SubItems(1) = myR.Getoperate(Rs4.Fields(2).Value)
                Litm.SubItems(2) = Rs4.Fields(3).Value
            Rs4.MoveNext
            If Rs4.EOF = True Then Exit For
        Next
        Text1.Text = CurrentPage & "/" & PageCount & "页"
End Sub
这是LISTVIEW分页的,意思一样的吧
在最后一页的时候,一定要判断是否到了记录尾要退出 --------------------编程问答-------------------- 楼上的,好像和我想的不一样吧,我的DATAGRID到记录尾,最后一页如果记录不满,就出错,我要它显示出来,不是退出啊!可能是我理解不了你的思路吧,,还是谢谢!!
有没有人说说DATAGRID的怎么弄啊? --------------------编程问答-------------------- 望版主关注下啊,,不胜感谢!!! --------------------编程问答-------------------- 这是我的程序代码:
Dim adoPrimaryRS As ADODB.Recordset
Dim lPageCount As Long
Dim nPageSize As Integer
Dim lCount As Long
nPageSize = 3
Set adoPrimaryRS = New ADODB.Recordset
adoPrimaryRS.Open "select * from 奖励违规表", conn, adOpenStatic, adLockOptimistic
adoPrimaryRS.PageSize = nPageSize
lPageCount = adoPrimaryRS.PageCount
If lCurrentPage > lPageCount Then
lCurrentPage = lPageCount
End If
adoPrimaryRS.AbsolutePage = lCurrentPage
Dim objrs As New ADODB.Recordset
For lCount = 0 To adoPrimaryRS.Fields.Count - 1
objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize
Next
objrs.Open
For lCount = 1 To nPageSize
objrs.AddNew
objrs!时间 = adoPrimaryRS!时间
objrs!姓名 = adoPrimaryRS!姓名
objrs!奖励事项 = adoPrimaryRS!奖励事项
objrs!违规事项 = adoPrimaryRS!违规事项
adoPrimaryRS.MoveNext
Next
Set DataGrid1.DataSource = objrs --------------------编程问答-------------------- 是到最后一页 objrs!时间 = adoPrimaryRS!时间  报错么

如果是,可以在objrs.AddNew前放句
if not adoPrimaryRS.eof then 
.......
......
......
adoPrimaryRS.movenext
end if
--------------------编程问答-------------------- 感觉是因为adoPrimaryRS 中数据不足于使lcount = npagesize
当最后个数据读完后,程序因为FOR语句关系仍会从adoPrimaryRS中读数据
当那时adoPrimaryRS已为空,所以报错 --------------------编程问答--------------------
出错处理,直接跳到绑定就可以显示不满页面剩下的记录了
objrs.Open
On Error GoTo err
For lCount = 1 To nPageSize
objrs.AddNew
objrs!时间 = adoPrimaryRS!时间
objrs!姓名 = adoPrimaryRS!姓名
objrs!奖励事项 = adoPrimaryRS!奖励事项
objrs!违规事项 = adoPrimaryRS!违规事项
adoPrimaryRS.MoveNext
Next
err:
''绑定
Set DataGrid1.DataSource = objrs
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,