1、引用法
引用ADO相关组件:打开VBA编辑器,在菜单中点选“工具”--》“引用”。确保“Microsoft ActiviteX Data Objects 2.8 Library”和“Microsoft ActiviteX Data ObjectS Recordset 2.8 Library”被勾选上。引用后再声明:
Dim cnn As New Connection '声明链接对象
Dim rst As New Recordset '声明记录集对象
如下代码:
Dim cn As ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
mydata = ThisWorkbook.Path & "\DATA.MDB"
'下面的语句将读取数据表数据
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
curr = 404
cn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & mydata & ";Jet OLEDB:Database Password=123;Persist Security Info=False"
strSQL = "SELECT WZHGZBH FROM H_CL WHERE CLSBDH='" & Cells(curr, 4) & "'" '定义SQL查询命令字符串
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic
'下面将读取的数据写入EXCEL
If rs.RecordCount = 1 Then
Cells(curr, 1) = rs.Fields(0).Value
End If
2、创建法
不需要引用ADO相关组件,直接使用CreateObject函数创建ADO对象,即:
Set cnn = CreateObject("ADODB.connection") '创建ado对象
Set rst = CreateObject("ADODB.recordset") '创建记录集
下面是例程(和上面例程类似,前半部分不同,后面的相同):
如下代码:
Dim cn As Object '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As Object '定义记录集对象,保存数据表
Dim strCn, strSQL, dbName As String '字符串变量
Dim allrows
dbName = ThisWorkbook.Path & "\drug.mdb" '数据库路径
'下面的语句将读取数据表数据
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "provider=microsoft.Ace.oledb.12.0;data source=" & dbName & ";Jet OLEDB:Database Password="
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic
'下面将读取的数据写入EXCEL
If rs.RecordCount = 1 Then Print .N
MsgBox (rs.Fields(0).Value)
End If
End Sub
其它组件的使用也和这个差不多,建议用创建法,这样就不用管“引用”中的设置了,例如:
Dim dic As Object '直接创建不需要引用
Set dic = CreateObject("scripting.dictionary") '创建字典对象
Dim fso as Object '直接创建不需要引用
Set fso = CreateObject("Scripting.FileSystemObject") '创建文件对象模型