【分享成果,随喜正能量】当你幸福时,若幸福建立在他人痛苦之上,这不叫幸福,而是造业;当快乐时,若快乐会导致痛苦,这不叫快乐,而是痛苦尚未成熟;当富有时,若财富源于不正行业,这不叫富裕,而是累债;当自感聪明,若聪明用于自私,这不叫聪明,而是愚昧。不立于恶,所以不生苦。
《VBA数据库解决方案》教程是我推出的第二套教程。目前第一版已经修改完毕。这套教程定位于中级,是学完字典后的又一次特别讲解。数据库是数据处理的有力工具。教程详细介绍了用ADO连接ACCDB和EXCEL的方法和示例操作。教程第一版的修改主要是完成所有程序文件的32位和64位OFFICE system测试。
这套教程共分两卷,84讲。以后我们会陆续介绍教程的修改内容。今天的内容是第8讲:ADO连接数据库,打开数据记录集。
讲座8:从创建ADO对象到打开记录集大家好。今天,我们将讲解VBA数据库解决方案第8讲:回顾从创建ADO连接到打开记录集的过程。我们的数据库已经讲解到这一讲了,一些基本概念和一些需要知道的基本知识差不多就够了。会逐渐过渡到注重解决实际问题。今天,我们将简单回顾一下我们之前解释的内容。
1数据库的知识点我们先讲了数据库。理解关系数据库中的关系指的是什么很重要。所谓关系就是表,也就是数据库中的表,所以所谓关系数据库就是由表组成的数据库。
2创建ADO对象在各种连接数据库的连接方式中,我们主要说一下ADO的连接方式,这是一种比较年轻的连接方式。所谓ADO就是ActiveX数据对象。对于这个词的解释,我们不必追求太多,只要知道它只是一组数据对象就可以了。连接数据库时,给出了两种ADO连接方式。
第一种方法是预绑定,即参考“微软ActiveX数据对象2.x库”找到其中字尽可能高一点的版本.创建连接的代码语句如下:Dim cnADO As ADODB。“Connection”声明一个ADO对象。
设置cnADO=New ADODB。“连接”创建ADO对象
或者直接创建声明时,代码写成:
Dim cnADO作为新的ADODB。关系
第二种方法:直接创建,即后期绑定:代码如下:Dim cnADO As Object '声明一个ADO对象。
设置cnado=createobject(' adodb . connection ')'以创建ado对象
3个ADO对象连接到数据库。在我之前的代码中有两种连接方式:
第一种类型:strpath=this workbook . path ' \ my data . accdb '
cnADO。“开放”提供商=Microsoft。ACE . OLEDB.12.0数据源=' strPath
第二种类型:
使用cnADO。Provider='Microsoft。' ACE.OLEDB.12.0 '。打开strPath
以…结尾
两个方法写的不一样,但其实内容是一样的,就是设置了连接对象的Provider和Connectionstring两个属性。
4 SQL语句并打开记录集
下一步是记录集的操作。这里我们讲了Sql,也就是结构化查询语句,比如Sql='Select class,name From the higher three '。上面的SQL语句的意思是从“高三”表中查询(提取)所有记录的class和name两个字段。
还有两种方法可以打开记录集;
4.1第一种方法:使用Connection对象的Execute方法
1:设置rst=CNADO。EXECUTE (SQL)执行查询并将结果保存到RST对象中。
示例2:执行方法
语法:connection.executecommandtext,受影响的记录,选项
返回:记录集对象引用。
参数:
命令文本字符串,通常
为要执行的 SQL 语句、表名。② RecordsAffected 可选,长整型变量,提供者向其返回操作所影响的记录数目。
③ Options 可选,长整型值,指示提供者应如何计算 CommandText 参数。
后面两个可选参数我们一般用不到去设置。使用Connection对象的Execute方法返回的结果集,始终为只读、仅向前的游标。也无法取得返回结果集合中的记录数。一般在只需将结果一次性写入工作表中(CopyFromRecordset)时使用,它的好处是写法简洁。如果需要处理返回结果的更多操作,应使用下面的方法。
4.2 第二种方法:使用Recordset对象的Open方法
示例1:rst.Open Sql, cnn 同前面的Set rst = cnADO.Execute(Sql)一样。
示例2 Open 方法
语法 :recordset.Open Source, ActiveConnection, CursorType, LockType, Options
参数:
①:Source 可选,变体型,通常为SQL 语句、表名。
②:ActiveConnection 可选。变体型,一般为有效 Connection 对象变量名。
③:CursorType 可选,CursorTypeEnum 值,打开 Recordset 时使用游标类型。
④ LockType 可选。打开 Recordset 时使用的锁定(并发)类型。
⑤:Options 可选,长整型值,用于指示提供者如何计算 Source 参数。
其中参数③游标是可以指定的类型有四种:0 AdOpenForwardOnly 默认值 打开仅向前类型游标。
1 AdOpenKeyset 打开键集类型游标。
2 AdOpenDynamic 打开动态类型游标。
3 AdOpenStatic 打开静态类型游标。
如果需要计算返回记录集的记录数(RecordCount),需要将游标指定为adOpenStatic或adOpenKeyset类型,如果需要对游标进行更新,则需要指定为adOpenKeyset或AdOpenDynamic类型。
其中参数④LockType可以选的类型如下: 1 AdLockReadOnly (默认值)只读 ― 不能改变数据。
2 AdLockPessimistic 保守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
3 AdLockOptimistic 开放式锁定(逐个) ― 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
4 AdLockBatchOptimistic 开放式批更新―用于批更新模式(与立即更新模式相对)。
到此,我们就把VBA、数据库、ACCESS、ADO、SQL等一些重要的词语概念连接到一起了。
今日内容回向:
1 从数据库到打开记录集的各个步骤是否清楚了呢?
2 如何打开一个SQL记录集?
我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呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。