Excelを使用してテーブル(Purchases)をクエリするSQLを使用しようとしています。ただし、以下のスクリプトを実行するとエラーが発生します。エラーExcelでVBAを使用してADODBを使用してテーブルをクエリする
tableaddress変数は、Purchases!$ A $ 2:$ F $ 1200を生成します。これは、テーブル "Purchases"の範囲です。
生成されるSQLクエリは次のとおりです。
Select * From [Purchases!$A$2:$F$1200]
以下に示すように、現在のVBA自体は次のとおりです。
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
Dim tableAddress As String
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
cn.Open
tableAddress = "Purchases!" & Range("Purchases").Address
strSQL = "Select * From [" & tableAddress & "]"
rs.Open strSQL, cn
cn.Close
実行するときしかし、私は以下のエラーを取得...
[Microsoft][ODBC Excel Driver] 'Purchases!$A$2:$F$1200' is not a valid name.
Make sure that it does not include invalid characters or punctuation and that it is no too long.
エラーにアポストロフィが表示されていますが、句読点が参照されているかどうか、または取り除く方法がわかりませんもしそうなら、それの。
ありがとうございます!
次のコードは動作するはずです
あなたは '[]'なしてみましたか? –
私は、 'FROM句に構文エラー'という問題があります。もともと私はそれを持っていましたが、ADODBの他の指示で参照されているものを見た後に括弧を追加しました。 –
'ActiveWorkbook.Path&Application.PathSeparator&ActiveWorkbook.Name'はどうですか? 'ActiveWorkbook'はそれがあなたが思っているもので、それに' Purchases'タブがあると確信していますか?また、SQL文で完全なファイルパスを修飾してみてください。 ' –