このエラーは非常に一般的であるため、既存のソリューションの多くがさまざまな問題に対処しているようです。
私の場合、Excel 2010 で機能し、Excel 2007 では機能しないマクロを作成しました。
コードの要約は次のとおりです。
cn = "ODBC;Driver={SQL Server Native Client 10.0};Server=serverName;Database=dbName;Trusted_Connection=yes;"
sql = "select top 10 * from tableName"
Dim S As Worksheet
Set S = ActiveWorkbook.Sheets("Medical")
With S.QueryTables.Add(Connection:=cn, Destination:=S.Range("B1"))
.CommandText = sql
.Refresh BackgroundQuery:=False
End With
このコードは Excel 2010 では完全に実行されますが、Excel 2007 ではエラーになります。
2007 の接続文字列構造を変更する必要がありますか、それとも別の問題がありますか?