数据库地址表(打开数据库的数据记录集)

【分享成果,随喜正能量】你多学一样本事,就少说一句求人的话。我始终相信一句话:只有自己足够强大,才不会被别人践踏。

《VBA数据库解决方案》教程是我推出第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第7讲:打开数据库的数据记录集。

数据库地址表(打开数据库的数据记录集)(1)

第七讲 如何利用Recordset对象打开数据库的数据记录集

我们上一讲讲了Recordset 对象的一些属性、方法和事件。我们今日继续讲解Recordset 对象的相关知识,如何利用Recordset对象打开数据库的数据记录集合。

在讲解之前,我们还要补充些必要的知识点:

数据库地址表(打开数据库的数据记录集)(2)

1 Recordset 对象的更新和访问

1.1 Recordset 对象能够支持两种更新类型

① 立即更新,一旦调用 Update 方法,所有更改被立即写入数据库。

② 批更新,provider 将缓存多个更改,然后使用 UpdateBatch 方法把这些更改传送到数据库。

1.2 另外在访问记录的时候,ADO定义了 4 中不同的游标(指针)类型

① 动态游标 :允许您查看其他用户所作的添加、更改和删除

② 键集游标 :类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。

③ 静态游标 :提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。

④ 仅向前游标: 除仅允许在记录中向前滚动之外,其行为类似静态游标。这样,当需要在 Recordset 中单程移动时就可提高性能。

1.3为什么要设计这四个游标类型呢?

这就是搭建数据库的良苦用心,这四种类型也就是客户访问数据库的不同类型,或者称之不同的权限,有的是完全所有权权限访问的,任何访问都可以享用,有的只是拥有部分权限,这要依据用户的性质来决定你所享受的权限了。当然这点和VBA的联系还不是十分的密切,只是讲到数据库和大家顺带说一下。

2 ADO三个对象间的相互联系

2.1 Command对象和Recordset对象依赖于Connection对象的连接;

2.2 Command对象结合SQL命令可以取代Recordset对象,但远没有Recordset对象灵活、实用;

2.3 Recordset对象它只能实现数据表内记录集操作. 记录集(Recordset):对表执行查询操作时,返回的一组特定记录。

数据库地址表(打开数据库的数据记录集)(3)

3 打开一个Recordset记录集

一定要清楚,打开记录集前要连接数据库,连接Connection请参考上一讲内容;

Dim cnADO As New ADODB.Connection

Dim strPath As String

strPath = ThisWorkbook.Path & "\mydata.accdb"

cnADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

在打开记录集前还要做的工作有:声明Recordset对象,创建Recordset对象

Dim rsZYS As ADODB.Recordset

Set rsZYS = New ADODB.Recordset

rsZYS.Open "职员表", cnADO, 1, 3

MsgBox rsZYS.RecordCount

rsZYS.Close

cnADO.Close

Set rsZYS = Nothing

Set cnADO = Nothing

数据库地址表(打开数据库的数据记录集)(4)

代码解读:

① rsZYS.Open "职员表", cnADO, 1, 3是打开记录集,。

② MsgBox rsZYS.RecordCount 弹出对话框,提示职员表的信息个数

③ rsZYS.Close

cnADO.Close

关闭记录集和数据库的连接,注意要先关闭记录集,再关闭连接,和打开的顺序是相反的。

④ Set rsZYS = Nothing

Set cnADO = Nothing

释放内存,

运行后会弹出记录数:(数据库内记录行数)

数据库地址表(打开数据库的数据记录集)(5)

这节的内容是我们开始进入数据库内部的操作了,大家不要急,要慢慢来,我数据库的讲解是循序渐进的。

今日内容回向:

1 Recordset 对象 有几种更新方式?

2 Recordset 对象 如何打开记录集?

数据库地址表(打开数据库的数据记录集)(6)

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解

第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程

第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)

第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解

第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解

第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用

第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解

第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用

上述教程的学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

  • 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页