VBA Excel到SqlServer
问题描述:
编写VBA代码从Excel连接到SQL Server 2005的最佳方法是什么?VBA Excel到SqlServer
excel文件的用户可能会运行XP,Vista,Win7,我想尽可能地防止驱动程序的安装。
我的理解是XP使用MDAC而Vista/Win7使用DAC。这是否意味着对MDAC 2.8的引用不适用于Vista机器,反之亦然?
如果我不添加引用并使用后期绑定,例如,我的VBA代码是否可以同时工作?的CreateObject( “ADODB.Connection”)?
答
我已经使用MS ADO 2.0(在我的工作站上发现的最旧版本,将其添加为参考)完成此操作。它的工作对所有的PC的我已经试过了,你只需要启用宏如果引用(这是不是一个好消息可言)
Dim dbConnection As ADODB.Connection
Dim connStr As String
'Recordset variables
Dim rsData As ADODB.Recordset
Dim sql As String
connStr = "Provider=SQLOLEDB;" & _
"Data Source=MyServer\MyInstance;" & _
"Initial Catalog=MyDatabase;" & _
"Integrated Security=SSPI;" & _
"Application Name=MyExcelFile"
Set dbConnection = New ADODB.Connection
dbConnection.ConnectionString = connStr
dbConnection.Open
Set rsData = New ADODB.Recordset
rsData.Open "SELECT field FROM table", dbConnection
Dim field as String
Do While Not rsData.EOF
'this is where each row will be processed
field = rsData.Fields(0).Value
'do what's needed with field
rsData.MoveNext
Loop
“MS ActiveX数据对象2.8”,然后MDAC 2.8必须已部署在该XP机器上。 在Vista上预装了向后兼容的MDAC 6,所以你应该罚款(它甚至不会允许2.8被安装)。 正如你所说,与CreateObject(“ADODB.Connection”)的后期绑定将是版本不可知的。 – 2010-04-14 10:45:21