分享

Excel VBA ADO SQL入门教程021:ADO常用连接字符串

 L罗乐 2018-04-15

大家好,好久不见,我们今天开始讲述ADO。

在很久以前的第2章,我们说明了ADO的概念以及为什么学习ADO;同时也介绍了如何在VBA中引用ADO类库、创建同Excel文件的连接,并分享了一个使用ADO执行SQL语言的小套路等;

打个响指,对面的女孩看过来……就像我们所熟悉的Workbook对象一样,大对象ADO内部也有多个小对象,不过我们经常用到的只有两个;一个是Connection,另一个是Recordset。Connection,顾名思义,是到数据库的连接,管理应用程序和数据库之间的通信;Recordset,又称记录集,是用来获得数据,存放和处理SQL语句的查询结果……另外,我们可能会在系列教程的末尾稍微提下ADO的Command对象,它的主要作用是用来处理带参数值的或重复执行的查询。

……

先来看下Connection对象。它的语法如下:

connection.Open ConnectionString, UserID,Password, Options

语法各参数的含义我们第2章时讲过了,这里不再重述。嗯,我是真懒,实在没办法把第2章的内容复制粘贴过来,所以建议你先看完第2章的前3节内容再继续向下阅读。

踹一脚,对面的男孩看过来……第2章时,我们说过,虽然Connection对象对于不同的数据库或文件会有不同的连接字符串,但常用的数据库或文件的连接字符串均是固定的。

下面是常用数据库或文件的连接字符串。

1,Access数据库

没有密码保护的Access数据库

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=带路径的Access数据库名称;

有密码保护的Access数据库

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=带路径的Access数据库完整名称;JetOLEDB:Database Password=密码;

2,Text文件

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=文本文件路径&'\';Extended Properties=’text;HDR=Yes;FMT=Delimied’;

3,SQL Server数据库

Provider =SQLOLEDB;Password=密码;User ID= 用户名; Data Source =SQL数据库服务器名称;Initial Catalog=数据库名称;

4,Oracle 数据库

Provider =madaora; PassWord=密码; User ID=用户名; Data Source =Oracle数据库服务器名称;

5,FoxPro数据库

Provide=Microsoft.ACE.OLEDB.12.0;User ID=用户名;Data Source=dbf文件路径;Extended Properties=dBASEIV;

6,Excel工作簿

03版本Excel

Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=’Excel 8.0;HDR=yes;IMEX=0’;Data Source=带路径的Excel工作簿完整名称

07~16版本Excel

Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=’Excel 12.0; HDR=yes;IMEX=0’;Data Source=带路径的Excel工作簿完整名称

……

……

另外,就像我们所熟悉的众多的VBA对象一样,Connection对象也有很多自己的属性、方法,甚至事件;不过我们能用到的……同样实在不多,且也都有固定的套路。

通过一小段代码,有几个属性仅供大家了解。

Sub test()

    Dim cnn As Object

    Set cnn = CreateObject('adodb.connection')

    cnn.Open 'provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=' & ThisWorkbook.FullName

    If cnn.State = 1 Then

        MsgBox '连接成功!' & vbCrLf & 'ADO版本为:' & cnn.Version & vbCrLf & 'Connection对象提供者名称:' & cnn.provider

        cnn.Close

        Set cnn = Nothing

    Else

        MsgBox '数据库连接失败'

    End If

End Sub

State属性返回Connection对象的状态;0是AdStateClosed,表示对象是关闭的;1是AdStateOpen,表示对象是打开的;2是AdStateConnecting,表示对象正在连接等。

Version属性只读,返回Connection对象的版本号;Provider是Connection对象连接数据库提供程序者的名称,当Connection对象关闭时,该属性可读写;否则为只读。

……

重点是Connection对象的方法或函数,我们最常用的也就四个,分别是Open、Close、Execute和OpenSchema。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多