Access-小示例-02-连接mdb数据库


目录

Part 1:本篇目标

  1. 常用Access数据库格式为accdb,近来发现一种mdb数据格式的
  2. 作为数据库端,本文就是验证一下两者在使用VBA连接时是否有一些明显区别
  3. 示例:连接***mdb***数据库,并将内容显示到前端

mdb数据库

图片

前端效果

图片


目录

Part 2:实现步骤

  1. 新建一个Access文件,默认为accdb格式,转变为mdb格式步骤如下

    • 打开该文件,点击文件菜单,另存为mdb格式即可
    • 在该文件中录入相关信息
  2. 再新建一个Access文件,作为界面端,VBA代码也是写在这里

    • 搭建一个简单界面,包括一个按钮和一个列表框
    • 设计视图下,设置列表框的列数列标题:是行来源类型:值列表
    • 设计视图下,按钮的单击事件写入以下代码

另存为mdb文件

图片


目录

Part 3:代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Private Sub Command0_Click()  
' 第1部分:后端操作
' 数据库连接
Dim currentDir
Dim dbAddr
Dim adConn As ADODB.Connection
Set adConn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' 数据库地址
currentDir = Application.CurrentProject.Path & "\" dbAddr = currentDir & "数据库.mdb"
With adConn
.Provider = "Microsoft.ACE.OLEDB.12.0;"
.Open "Data Source=" & dbAddr
End With
SQL = "Select * From basic"'
Set rs = adConn.Execute(SQL)
rs.Open SQL, adConn, adOpenKeyset, adLockOptimistic
' 第2部分:前端显示
Set ctrl = Me.Controls("List1")
'清除原listbox 信息
ctrl.RowSource = ""
Dim rsCount

rsCount = rs.RecordCount
If rsCount < 1 Then '没有信息'
strAnswer = MsgBox("无数据", vbInformation, "提示")
Exit Sub
End If
fildCount = rs.Fields.Count ' 字段数目
existsRow = ctrl.ListCount ' 当前已写入行
'写入表头
tableHeader = ""
If existsRow = 0 Then
For i = 0 To fildCount - 1 Step 1
fildName = rs.Fields(i).Name
If tableHeader = "" Then
tableHeader = fildName
Else
tableHeader = tableHeader & ";" & fildName
End If
Next i
ctrl.AddItem tableHeader
End If
'回到第一条记录
rs.MoveFirst
For i = 1 To rsCount
fildContents = ""
For j = 0 To fildCount - 1 Step 1
fildContent = rs.Fields(j).Value
If fildContents = "" Then
fildContents = fildContent
Else
fildContents = fildContents & ";" & fildContent
End If
Next j
ctrl.AddItem fildContents
rs.MoveNext
Next i
adConn.Close
Set rs = Nothing
Set adConn = Nothing
End Sub

代码截图

图片

图片


目录

Part 4:部分代码解读

  1. 对数据库的操作,一般分为以下几个步骤

    • 确定数据库地址
    • 连接数据库
    • 确定SQL语句
    • 执行SQL语句
    • 若有返回结果,对返回结果进行处理
  2. 执行SQL语句一般有两种方法

    • Set rs = adConn.Execute(SQL),若无需返回结果,可以采用该方法,例如插入、删除、更新等操作
    • rs.Open SQL, adConn, adOpenKeyset, adLockOptimistic,若需要返回结果,可以采用该方法,例如查询
    • 当然还有一些更细致的区别,但一般也只用到这两个区别
  3. 本文使用ADODB.Connection连接数据库,记得务必在Access中手动加入引用,本文采用的是Microsoft ActiveX Data Objects 6.1 Library,加入方法如下

    • VBE界面下工具菜单-引用

图片

目录

Part 5:小结

  1. 本文中对mdb数据库的连接方法与accdb采用一样的方法,目前来看可以适用