【分享成果,追随正能量】在你快乐的时候,如果快乐是建立在别人的痛苦之上,那就不是快乐,而是因缘;当你快乐的时候,如果快乐导致痛苦,那不是快乐,而是痛苦尚未成熟;当你富有时,如果财富来自不正当的行业,那就不叫财富,而是积累的债务;当你觉得自己聪明的时候,如果聪明是用来自私的,那就不是聪明,而是无知。永远不要站在邪恶中,这样你就不会受苦。
VBA数据库解决方案是我的第二套教程,在第一版中已经修改过了。本教程位于中级,是学完词典后的又一个专题。数据库是数据处理的利器。教程中详细介绍了用ADO连接ACCDB和EXCEL的方法和示例操作。教程第一版的修改内容主要是完成所有程序文件的32位和64位OFFICE system测试。
本教程共两卷,84讲,以后会陆续给大家介绍修改后的教程内容。今天的内容是第8讲:ADO连接数据库并打开数据记录集。
第八讲 从创建ADO对象,到打开记录集
大家好。今天,我们将谈论VBA数据库解决方案。第8讲:回顾从创建ADO连接到打开记录集的过程。到我们数据库这一讲结束,已经涵盖了一些基本概念和一些需要知道的基础知识,会逐渐转移到着重解决实际问题上来。今天,我们将简要回顾一下我们以前解释过的内容。
1 数据库的知识点
我们首先讨论了数据库,理解关系数据库中的关系指的是什么很重要。所谓关系就是表,是数据库中的表,所以所谓关系数据库就是由表组成的数据库。
2 创建ADO对象
在我们讲的连接数据库的各种连接方式中,主要讲ADO的连接方式,这是一种比较年轻的连接方式。所谓的ADO就是ActiveX数据对象,对于这个词的解释我们不需要追求太多,只要知道它只是一组数据对象就可以了。连接数据库时,给出了两种ADO连接方式。
第一种办法是前期绑定,即引用”Microsoft ActiveX Data Objects 2.x Library”找到其中字尽可能高一点的版本,创建连接的代码语句如下:
Dim cnADO作为ADODB。“Connection”声明一个ADO对象。
设置cnADO = New ADODB。创建一个ADO对象。
或者在声明中直接创建,代码写为:
Dim cnADO作为新的ADODB。关系
第二种办法:直接的创建,即后期的绑定:代码如下
“Dim cnADO As Object”声明了一个ADO对象
set cnADO = CreateObject(& # 34;ADODB。连接& # 34;)’创建一个ADO对象
3 ADO对象连接到数据库
在我之前的代码中有两种连接方式:
第一种类型:strPath = ThisWorkbook。路径& & # 34;\ mydata.accdb & # 34
cnADO。打开& # 34;提供商=微软。ACE . OLEDB.12.0数据源= & # 34;& strPath
第二种类型:
使用cnADO
。提供商= & # 34;微软。ACE . OLEDB.12.0 & # 34
。打开strPath
以…结尾
两者的写法不同,但内容其实是一样的,就是设置连接对象的Provider和ConnectionString两个属性。
4 SQL语句及打开记录集
下一步是记录集的操作。这里我们谈到了SQL,也就是结构化查询语句,比如Sql = & # 34从[高三]中选择班级、名称& # 34;上面的Sql语句的意思是从“高三”表中查询(提取)所有记录的class和name字段。
还有两种打开记录集的方法;
4.1第一种方法:使用连接对象的Execute方法。
示例1:设置rst = cnado。execute (SQL)执行查询并将结果保存在rst对象中。
示例2:执行方法
语法:connection.executecommandtext,受影响的记录,选项。
返回:记录集对象引用。
参数:
① CommandText字符串,通常是要执行的SQL语句和表名。
(2)受影响的记录可选,长整型变量,提供程序将受操作影响的记录数返回给该变量。
③ Options可选,长整型值,指示提供程序应如何计算CommandText参数。
我们一般不需要设置后两个可选参数。使用Connection对象的Execute方法返回的结果集始终是只读、只进游标。也不可能得到返回结果集中的记录数。一般在只需要将结果一次性写入工作表时使用(CopyFromRecordset),其优点是书写简洁。如果需要处理更多返回结果的操作,应该使用以下方法。
4.2第二种方法:使用Recordset对象的Open方法。
例1: rst.opensql,CNN与前面的Set rst = cnADO相同。执行(Sql)。
示例2打开方法
语法:记录集。开源,活动连接,光标类型,锁类型,选项。
参数:
①: Source是可选的,形状可变,通常是SQL语句和表名。
②:主动连接是可选的。变量,通常是有效的连接对象变量名。
③: CursorType是可选的,带有CursorTypeEnum值,打开记录集时使用光标类型。
④ LockType是可选的。打开记录集时使用的锁定(并发)类型。
⑤: Options可选,长整型值,表示提供者如何计算源参数。
其中参数③游标是可以指定的类型有四种:
0 AdOpenForwardOnly默认情况下打开只进游标。
1 AdOpenKeyset打开一个键集类型游标。
2 AdOpenDynamic打开动态类型的光标。
3 AdOpenStatic打开静态类型游标。
如果需要计算返回的记录集的RecordCount,需要将游标指定为adOpenStatic或adOpenKeyset,如果需要更新游标,需要将其指定为adOpenKeyset或AdOpenDynamic。
其中参数④LockType可以选的类型如下:
1 AdLockReadOnly(默认)只读-数据不可更改。
2 adlock悲观保守锁定,提供者完成确保成功编辑记录所需的工作,通常是在编辑时立即锁定数据源的记录。
3 adlock乐观打开锁定(逐个)-提供程序仅在调用Update方法时使用打开锁定来锁定记录。
4 AdLockBatchOptimistic开放式批量更新—用于批量更新模式(相对于立即更新模式)。
至此,我们已经连接了一些重要的概念,如VBA、数据库、ACCESS、ADO和SQL。
今天的内容回到:
1从数据库到打开记录集的步骤是否清晰?
2如何打开SQL记录集?
我20多年的VBA实践经验全部集中在以下教程中:
第七套教程(共三册):VBA的EXCEL应用:VBA基础讲解。
第一套教程(共三册):VBA代码解决方案:入门后的改进教程。
教程4(16G):VBA码解法视频(第一套视频讲解)
第三套教程(共两卷):VBA数组和字典解法:是对数组和字典的专门讲解。
第二套教程(共两卷):《VBA数据库解决方案》:是数据库的专题讲解。
第六套教程(共两卷):VBA信息采集与处理:讲解VBA的网络与跨程序应用。
第五套教程(共两卷):VBA的类的解释和利用:类的解释和接口技术。
第八套教程(共三册):VBA的word应用(最新教程):VBA在Word中的使用。
以上教程的学习顺序:
① 7→1→3→2→6→5或7→4→3→2→6→5。
② 7→8
如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。