怎么打开sql数据库文件,ADO连接数据库

抖帅宫 696 2023-11-06

怎么打开sql数据库文件,ADO连接数据库-第1张-观点-玄机派

来源头条作者:VBA语言専攻

【分享成果,随喜正能量】当你幸福时,若幸福建立在他人痛苦之上,这不叫幸福,而是造业;当快乐时,若快乐会导致痛苦,这不叫快乐,而是痛苦尚未成熟;当富有时,若财富源于不正行业,这不叫富裕,而是累债;当自感聪明,若聪明用于自私,这不叫聪明,而是愚昧。不立于恶,所以不生苦。

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

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

第八讲 从创建ADO对象,到打开记录集

大家好,我们今天讲解VBA数据库解决方案第8讲:从创建一个ADO连接,到打开记录集的过程回顾。我们的数据库讲解到本讲,一些基本的概念,以及需要了解的一些基本知识就讲的差不多了,将逐渐过渡到以实际问题的解决为侧重点了。今天我们将之前讲解的内容再大概的回顾一下。

1 数据库的知识点

我们首先讲了数据库,务必要理解的是关系数据库中的关系是指什么。所谓的关系就是表,就是数据库中的表格,那么所谓的关系数据库就是由表格组成的数据库。

2 创建ADO对象

我们讲连接数据库的各种连接方式中,主要讲了ADO的连接方式,这种方式是比较年轻的连接方式,所谓的ADO就是ActiveX Data Objects,对于这个词的解释不必过多的追求,只要知道只是一组数据对象即可。在连接数据库的时候,给出了两种方式的ADO连接。

第一种办法是前期绑定,即引用”Microsoft ActiveX Data Objects 2.x Library”找到其中字尽可能高一点的版本,创建连接的代码语句如下:

Dim cnADO As ADODB.Connection ’声明一个ADO对象

Set cnADO = New ADODB.Connection ’创建一个ADO对象

或者在声明是直接创建,代码写为:

Dim cnADO As New ADODB.Connection

第二种办法:直接的创建,即后期的绑定:代码如下

Dim cnADO As Object’声明一个ADO对象

Set cnADO = CreateObject("ADODB.Connection")’创建一个ADO对象

3 ADO对象连接到数据库

我之前的代码中有两种连接方式:

第一种: strPath = ThisWorkbook.Path & "\mydata.accdb"

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

第二种:

With cnADO

.Provider = "Microsoft.ACE.OLEDB.12.0"

.Open strPath

End With

两者写法不一样,其实内容是一样的,就是设置Connection对象的Provider和ConnectionString的两个属性。

4 SQL语句及打开记录集

下一个步骤是记录集的操作,这里我们讲了SQL即结构化查询语句,如Sql = "Select 班级,姓名 From [高三年级]"上面Sql语句的意思是从“高三年级”表中查询(提取)所有记录的班级和姓名两个字段。

在打开记录集时同样也有两种方法可以利用;

4.1第一种方法:使用Connection对象的Execute方法

示例1: Set rst = cnADO.Execute(Sql) 执行查询,并将结果保存到rst对象中。

示例2 :Execute 方法

语法:connection.Execute CommandText, RecordsAffected, Options

返回: Recordset 对象引用。

参数:

① CommandText 字符串,通常为要执行的 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呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
上一篇:三十二颗牙齿的人命运是不是不好(为啥多病的长寿,没病的早死?10句话说出长寿大智慧)
下一篇:林肯维修太贵了,小保养1224元
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

返回顶部小火箭