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

论坛 期权论坛 期权     
数据分析就用Excel   2019-6-9 21:27   3702   0
大家好,好久不见,我们今天开始讲述ADO。
在很久以前的第2章,我们说明了ADO的概念以及为什么学习ADO;同时也介绍了如何在VBA中引用ADO类库、创建同Excel文件的连接,并分享了一个使用ADO执行SQL语言的小套路等;详参链接:Excel VBA+ADO+SQL入门教程002:简单认识ADO
……
打个响指,对面的女孩看过来……就像我们所熟悉的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。
通过往期的教程,我们已经知道,Open用于创建连接,Close用于关闭连接,Execute用于执行SQL语句;而OpenSchema则是可以获得数据库数据表的名称及相关信息。
Open和Close已经木有什么好说的了,Execute我们下节再多说两句。
所以下节见~
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:113
帖子:22
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP