VBA 使用ADO组件的两种方式--引用法创建法

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")     '创建文件对象模型



  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值