VBA Excel To SqlServer - PullRequest
       19

VBA Excel To SqlServer

4 голосов
/ 14 апреля 2010

Как лучше написать код VBA для подключения к SQL Server 2005 из Excel?

Пользователи файла Excel могут использовать XP, Vista, Win7, и я хочу максимально предотвратить установку драйверов.

Насколько я понимаю, XP использует MDAC, а Vista / Win7 использует DAC. Означает ли это, что ссылка на MDAC 2.8 не будет работать на компьютере с Vista и наоборот?

Будет ли работать мой код VBA, если я не добавлю ссылку и не использую позднюю привязку, например CreateObject ( "ADODB.Connection")

1 Ответ

3 голосов
/ 14 апреля 2010

Я сделал это с помощью MS ADO 2.0 (самая старая версия, найденная на моей рабочей станции, добавлена ​​в качестве ссылки).Он работает на всех ПК, которые я пробовал, вам нужно только включить макросы (что не было хорошей новостью)

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
...