设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2035|回复: 5
打印 上一主题 下一主题

[窗体] Access子窗体翻页功能

[复制链接]
跳转到指定楼层
1#
发表于 2013-4-16 17:34:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Access中A窗体的子窗体数据源来自于ADO记录集(后台是sqlserver),由于数据量很大,都有几千条,想每次显示100条,想看101-200条可点击翻页,不知如何实现类似于下图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
6#
发表于 2013-4-18 13:57:19 | 只看该作者
mclly2000 发表于 2013-4-18 12:30
可否上实例,谢谢

这个我认为c/s的一般不需这样做。
5#
 楼主| 发表于 2013-4-18 12:30:42 | 只看该作者
chaosheng 发表于 2013-4-17 22:51
ADO 2.5 范例  

AbsolutePage、PageCount 和 PageSize 属性范例 (VB)

可否上实例,谢谢
4#
发表于 2013-4-17 22:51:20 | 只看该作者
ADO 2.5 范例  

AbsolutePage、PageCount 和 PageSize 属性范例 (VB)
'BeginAbsolutePageVB

    'To integrate this code
    'replace the data source and initial catalog values
    'in the connection string

Public Sub Main()
    On Error GoTo ErrorHandler
  
    'recordset and connection variables
    Dim rstEmployees As ADODB.Recordset
    Dim Cnxn As ADODB.Connection
    Dim strCnxn As String
    Dim strSQL As String
        'record variables
    Dim strMessage As String
    Dim intPage As Integer
    Dim intPageCount As Integer
    Dim intRecord As Integer

    'Open connection
    Set Cnxn = New ADODB.Connection
    strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _
        "Initial Catalog='Pubs';Integrated Security='SSPI';"
    Cnxn.Open strCnxn
   
    ' Open employee recordset
    ' Use client cursor to enable AbsolutePosition property
    Set rstEmployees = New ADODB.Recordset
    strSQL = "employee"
    rstEmployees.Open strSQL, strCnxn, adUseClient, adLockReadOnly, 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
   
    ' clean up
    rstEmployees.Close
    Cnxn.Close
    Set rstEmployees = Nothing
    Set Cnxn = Nothing
    Exit Sub
   
ErrorHandler:
    ' clean up
    If Not rstEmployees Is Nothing Then
        If rstEmployees.State = adStateOpen Then rstEmployees.Close
    End If
    Set rstEmployees = Nothing
   
    If Not Cnxn Is Nothing Then
        If Cnxn.State = adStateOpen Then Cnxn.Close
    End If
    Set Cnxn = Nothing
   
    If Err <> 0 Then
        MsgBox Err.Source & "-->" & Err.Description, , "Error"
    End If
End Sub
'EndAbsolutePageVB
3#
发表于 2013-4-17 15:57:32 | 只看该作者
{:soso_e100:}
2#
发表于 2013-4-17 11:52:38 | 只看该作者
本帖最后由 网络蜘蛛 于 2013-4-17 11:55 编辑

那个ADO记录集主键降序,新记录集rst1,rst2
rst1=ADO记录集
rst2=rst1升序的前100条记录,子窗体数据源=rst2。点击翻页
rst1=ADO记录集前N条记录,N=rst记录集数-100X,X是个计数器,计下点了几次翻页。
rst2=rst1升序的前100条记录,子窗体数据源=rst2。
随便写的,不知道是不是这个意思?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 17:46 , Processed in 0.096761 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表