【分享成果,随喜正能量】一岁有一岁的味道,一站有一站的风景,年龄应该成为你生命的勋章,纵使眼里写满故事,脸上依然不漏风霜,你的努力终将喂大你的格局。

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

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第4讲:数据库的前期绑定与后期绑定。

数据库分离与附加图解(数据库的前期绑定与后期绑定)(1)

第五讲 ADO连接Access,前期绑定与后期绑定方法实例

在上一讲中,讲了几种连接方案,ADO连接时讲了两种方案,一是前期通过引用来绑定ADO,还有一种是后期在代码中绑定,这讲中我将结合实际问题来具体的讲解一下这两种方案的利用。

实际需求:利用VBA打开一个如下面图示的数据库,打开后提示连接成功,并提示ADO版本号。

数据库分离与附加图解(数据库的前期绑定与后期绑定)(2)

1 后期绑定方法

也就是说在程序中绑定ADO,这种方案代码稍微多些,我们先看代码:

Sub mynzConnection_5()

Dim cnADO As Object

Dim strPath As String

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

Set cnADO = CreateObject("ADODB.Connection")

With cnADO

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

.ConnectionTimeout = 100

.Open strPath

End With

If cnADO.State = 1 Then

MsgBox "数据库连接成功!" & vbCrLf & _

vbCrLf & "ADO版本为:" & cnADO.Version & vbCrLf & _

vbCrLf & "Connection对象提供者名称:" & cnADO.Provider

cnADO.Close

Set cnADO = Nothing

Else

MsgBox "数据库连接失败!", vbInformation, "连接数据库"

End If

End Sub

代码截图:

数据库分离与附加图解(数据库的前期绑定与后期绑定)(3)

代码解析:上述代码是ADO后期绑定的一个典型的代码,大家可以收藏并利用它。

① strPath = ThisWorkbook.Path & "\mydata.accdb"语句把数据库存在的路径放在了变量strPath中。

②下面的语句创建一个ADO连接,并打开。

Set cnADO = CreateObject("ADODB.Connection")

With cnADO

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

.ConnectionTimeout = 100

.Open strPath

End With

③ 如果已经打开就提供ADO的版本号等信息

If cnADO.State = 1 Then

MsgBox "数据库连接成功!" & vbCrLf & _

vbCrLf & "ADO版本为:" & cnADO.Version & vbCrLf & _

vbCrLf & "Connection对象提供者名称:" & cnADO.Provider

④ 最后关闭连接

cnADO.Close

Set cnADO = Nothing

我们看看实际的运行结果:

数据库分离与附加图解(数据库的前期绑定与后期绑定)(4)

2 我们再看看前期绑定的时候该如何书写代码

这种方式代码非常的简单:

Sub mynzConnection_5_2()

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

If cnADO.State = adStateOpen Then

MsgBox "数据库连接成功!" & vbCrLf & _

vbCrLf & "ADO版本为:" & cnADO.Version & vbCrLf & _

vbCrLf & "Connection对象提供者名称:" & cnADO.Provider

cnADO.Close

Set cnADO = Nothing

Else

MsgBox "数据库连接失败!"

End If

End Sub

代码截图:

数据库分离与附加图解(数据库的前期绑定与后期绑定)(5)

代码讲解,

① 和上述代码不同的是这里用了Dim cnADO As New ADODB.Connection 即声明了一个新的ADO连接

② 这个时候直接打开连接即可:

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

看我们代码的运行:

特别提示:运行前一定要引用上ADO,我这里只是给出截图,如何设置引用在上节已经讲过,这种连接方法和上面的方法都是在实际中可以利用的方法,需要的朋友一定要收藏,不必再去编写代码,测试了,

数据库分离与附加图解(数据库的前期绑定与后期绑定)(6)

代码的运行:

数据库分离与附加图解(数据库的前期绑定与后期绑定)(7)

上面就是两种绑定方案的讲解。这两种方案可以在实际代码中利用它。

数据库分离与附加图解(数据库的前期绑定与后期绑定)(8)

我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

,