• 红皮书再总结——实例四


    实例4 分页显示记录

    (一)制作特点:

    第一、利用记录集的分页特性进行记录分页

    第二、使用DataGrid控件的数据绑定功能显示分页后的记录

    (二)设计分析:

    显示当前记录页数据有两种方法:

    方法一、DataGrid控件:该控件会显示记录集中的全部数据,所以不能直接将分页的记录集绑定到DataGrid控件。可将当前记录页中的记录复制到一个新的记录集中,再将其绑定到DataGrid控件,便可显示当前记录页数据。√

    方法二、MSFlexGrid控件:该控件可在设计时将其绑定到Data控件。在运行时,则可通过设置控件的TextMatrix属性来显示数据。

    (三)技术要领:

    1.记录集的分页特性
    这里写图片描述
    2.DataGrid控件

    用于绑定数据源,从数据源获得数据。控件列为数据源记录集的字段,控件行为数据源记录集的记录。

    将该控件DataSource属性设置为ADO Data 控件或RecordSet对象,以完成数据绑定。

    3.MSFlexGrid控件
    这里写图片描述

    (四)操作过程:

    (1)设计窗体

    ①工程——部件——Microsoft DataGrid Control 6.0(OLEDB)

    ②三个标签框+两个文本框+两个命令按钮+DataGrid控件

    (2)编写代码

    ①实现分页显示记录功能

    	Public Sub ShowData(ByVal intPage As Integer)      '实现分页显示记录功能
    
        Dim intPageCount As Integer, intRecord As Integer
    
        Dim objDataSource As New Recordset               '创建一个局部Recordset对象保存objRs当前记录页数据
    
        For intRecord = 0 To objRs.Fields.Count - 1
    
            objDataSource.Fields.Append objRs.Fields(intRecord).Name, adVarChar, objRs.Fields(intRecord).DefinedSize
    
        Next
    
            objDataSource.Open                  '打开局部Recordset对象
    
            objRs.PageSize = Val(txtPageSize)    '重新设置objRs每页显示的记录条数
    
            objRs.AbsolutePage = intPage        '重新设置objRs的当前记录页
    
        For intRecord = 1 To objRs.PageSize     '将当前记录页中数据写入objDataSource
    
            objDataSource.AddNew
    
            objDataSource!用户名 = objRs!用户名      '感叹号“!”常用于当一个控件作为一个特性访问的情况
    
            objDataSource!口令 = objRs!口令
    
            objRs.MoveNext
    
            If objRs.EOF Then Exit For              '如果objRs在记录集的尾处则退出
    
        Next
    
        Set DataGrid1.DataSource = objDataSource    '设置为数据网格的数据源
    
        txtPageMsg = intPage & "/" & objRs.PageCount    '刷新当前记录页信息
    
    End Sub
    

    ②前一页按钮

    Private Sub cmdPre_Click()
    	If intPage <> 1 Then                '修改当前页编号,向前切换记录页
    		intPage = intPage - 1
    		ShowData (intPage)
    	End If
    End Sub
    

    ③后一页按钮

    Private Sub cmdNext_Click()
    If intPage <> objRs.PageCount Then      '修改当前页编号,向后切换记录页
            intPage = intPage + 1
            ShowData (intPage)
        End If
    End Sub
    

    ③建立数据库连接

    strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;" & "Data Source=" & "C:UsersTXGDesktop实例1.mdb"
    
    objCn.ConnectionString = strCn
    
    objCn.Open
    

    ④关闭数据库连接,释放Recordset对象objRs和Connection对象objCn

    Private Sub Form_Unload(Cancel As Integer)
        objCn.Close
        Set objCn = Nothing
        Set objRs = Nothing
    End Sub
    

    (五)连接数据库方式:

    使用ADO Data 控件快速创建数据库连接,不用编写代码即可访问数据库。

  • 相关阅读:
    CentOS创建vsftp进行读写操作的简单方法
    [知乎]经典古诗词
    js仿手机端九宫格登录功能
    Android Studio 小技巧合集
    Android MVPR 架构模式
    剖析OkHttp缓存机制
    Java Observable 模式
    使用Rxjava缓存请求
    ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
    ThreadPoolExecutor使用介绍
  • 原文地址:https://www.cnblogs.com/txge/p/13973661.html
Copyright © 2020-2023  润新知