しばらく前に作成された現在の ODBC リンクがあり、Excel ファイルを照会しています。ここでやりたいことは、ブック内の各 ODBC 接続を介して接続文字列を更新し、同じ名前の別の .xls ファイルがある別のパスを使用するようにすることです。
つまり、Excel で表示される現在の接続文字列 ([データ] > [接続] > [接続] > [1stConn プロパティ] > [定義] タブ > [接続文字列]) は次のとおりです。
DSN=Excel Files;DBQ=C:\TEST\CurrentQuarter.xls;DefaultDir=C:\TEST;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;
そして、私はそれを次のように変更したい:
DSN=Excel Files;DBQ=C:\OTHERTEST\CurrentQuarter.xls;DefaultDir=C:\OTHERTEST;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;
私はこのコードを試しました:
Sub SwitchODBCSource()
Dim conn As WorkbookConnection
For Each conn In ActiveWorkbook.Connections
With conn
'I have tried without succes the following 2 properties, without any luck:
.CommandText = "DSN=Excel Files;DBQ=C:\OTHERTEST\CurrentQuarter.xls;DefaultDir=C:\OTHERTEST;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"
.Connection = "DSN=Excel Files;DBQ=C:\OTHERTEST\CurrentQuarter.xls;DefaultDir=C:\OTHERTEST;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"
End With
Next conn
Set conn = Nothing
End Sub
Connection ( .CommandText または .Connection) で適切なメソッドを使用していますか? VBAが「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーをスローするので、私はそうではないと感じています
その場合、使用されるオブジェクトは QueryTable です。Object を変更してそれを使用する必要がありますか? そのユーザーは.xlsファイルに接続したくないという印象を受けました..
どんな助けでも大歓迎です!