以下のマクロは、WindowsXP32ビットマシンのMicrosoftExcel2003で作成しました。更新ボタンを押すと、スプレッドシートに正しく表示されます。
ただし、これをWindows 7マシンであるユーザーのマシンで実行すると、32ビットと64ビットの両方で次のエラーメッセージが表示されます。
「ランタイムエラー'-2147467259(80004005)':[Microsoft] [ODBCDriverManager]データソース名が見つかりません。デフォルトのドライバーが指定されていません。」
Private Sub CommandButton1_Click()
Dim cmd As New ADODB.Command
Dim conn As ADODB.Connection
Dim prm As ADODB.Parameter
Dim strConn As String
Dim strSQL As String
Dim Rst As ADODB.Recordset
Dim WSP As Worksheet
Dim lastRow As Long
Dim ranges As range
strConn = "Data Source=;Initial Catalog=;User Id=;Trusted_Connection=False;"
Set conn = New ADODB.Connection
Set WSP = Worksheets("KPI")
lastRow = WSP.Cells.SpecialCells(xlCellTypeLastCell).Row
Set ranges = WSP.range("A6", WSP.Cells(lastRow, "K"))
ranges.Clear
conn.Open strConn
Set cmd = New ADODB.Command
cmd.CommandText = "dbo.returns_kpi_data"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn
cmd.Parameters.Refresh
cmd.Parameters("@OrderDate1").Value = WSP.range("G3", "G3")
cmd.Parameters("@OrderDate2").Value = WSP.range("I3", "I3")
'Execute the Stored Procedure
Set Rst = cmd.Execute
range("A6").CopyFromRecordset Rst
'Close the connection
conn.Close
End Sub