Sql in VBA 之 ADO连接字符串

ADO连接不同数据库的字符串

1、Access数据库
  1.1、没有密码保护的Access数据库
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=带路径的Access数据库名称;
  1.2、有密码保护的Access数据库
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=带路径的Access数据库名称;JetOLEDB:Database Password=密码;
2、Text、csv文件
  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工作簿
  1.1、97-03 版本Excel
    Provider=Microsoft.jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=yes;IMEX=0';Data Source=带路径的Excel工作簿完整名称
  1.2、07-16版本Excel
  Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0; HDR=yes;IMEX=0';Data Source=带路径的Excel工作簿完整名称

测试代码:

注:如果access 的Application.Version < 12则用Microsoft.jet.OLEDB.4.0,否则用Microsoft.ACE.OLEDB.12.0。

 1 Sub test()
 2     Dim cnn As Object
 3     Set cnn = CreateObject("adodb.connection")
 4     cnn.Open "provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=" & ThisWorkbook.FullName
 5     If cnn.State = 1 Then
 6         MsgBox "连接成功!" & vbCrLf & "ADO版本为:" & cnn.Version & vbCrLf & "Connection对象提供者名称:" & cnn.Provider
 7         cnn.Close
 8         Set cnn = Nothing
 9     Else
10         MsgBox "数据库连接失败"
11     End If
12 End Sub

哎……后续有时间写一个函数上来

 

posted @ 2020-08-17 23:50  大黑山  阅读(559)  评论(0编辑  收藏  举报