红皮书再总结——实例四

实例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:\Users\TXG\Desktop\实例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 控件快速创建数据库连接,不用编写代码即可访问数据库。

posted @ 2018-08-05 20:48  肥宅快乐鼠  阅读(24)  评论(0编辑  收藏  举报