用ado访问数据源时,连接字符串是关键,如果连接字符串错误了,往往无法访问成功。
本文收集整理了常用的在vba中用ado访问各种数据源的连接字符串。
1.连接Excel数据源的连接字符串:
Dim sConstr As String '在32位平台下可以用的连接字符串 sConstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1"
其中”HDR=Yes;”表示第一行包含列标题, “HDR=No;” 表示不把第一行当做列标题。
“IMEX=1;”表示告诉驱动程序总是把混合数据类型(数字、日期、文本)的列看做是文本。
Dim sConstr As String '在64位平台下可以用的连接字符串 sConstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myExcelFile.xls;Extended Properties=Excel 8.0;HDR=YES"
从OFFICE 2007开始,微软引入了一个新的连接程序,Office 2007 OLEDB driver
Microsoft.ACE.OLEDB.12.0
用该连接程序可以访问2007(含)以上的OFFCIE数据源,对于excel数据源行数超过65536的也可以使用该连接程序。
Dim sConStr As String sConStr = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & Excel.ThisWorkbook.Path & "\tcel.xlsm" & ";Extended Properties='Excel 12.0;HDR=YES'"
2.连接ACCESS数据源的连接字符串
Dim sConstr As String '32位下用的连接字符串 sConstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb"
Dim sConstr As String '64位下用的连接字符串 sConstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myAccessFile.accdb"
3.连接带密码的ACCESS数据源的连接字符串
4.连接Sql Server数据库的连接字符串
sDBName = "ESAPP1" sUID = "sa" sPW = "gxdz3852487" sAdd = "IP地址,端口号" sConStr = "Provider=sqloledb;Server=" & sAdd & ";Database=" & sDBName & ";User ID=" & sUID & ";Pwd=" & sPW
访问其它数据源的连接字符串可以在这里查询
发表评论