VBA Excel到SqlServer

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”)?

+0

“MS ActiveX数据对象2.8”,然后MDAC 2.8必须已部署在该XP机器上。 在Vista上预装了向后兼容的MDAC 6,所以你应该罚款(它甚至不会允许2.8被安装)。 正如你所说,与CreateObject(“ADODB.Connection”)的后期绑定将是版本不可知的。 – 2010-04-14 10:45:21

我已经使用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