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
哎……后续有时间写一个函数上来