0
私は、SQLリクエストを使用してcsvファイルからデータを取得することを目指しています。以前のワークブックですでに正常に作成されていたので、コピーしてSQLリクエスト部分でのみ変更しました。私は、コードをコピーした後に変更されていない最初の行に実行エラー9を持っている:Excel VBA listobjects.addクエリ可能なエラー9
ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(_
"ODBC;DBQ=" & Path & ";DefaultDir=" & Path & _
";Driver={Microsoft Access Text Driver (*.txt, *.csv)};DriverId=27;FIL=text", _
";MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;" _
), Destination:=ThisWorkbook.Sheets("Sessions").Range("$A$1")).QueryTable
変数のパスは、ファイルが保存されているフォルダに取得するためのパスです。シート "セッション"は、この行が実行される前に作成され、anがアクティブ化されます。
これは、要求の完全なコードは次のようになります。それはそれを使用して唯一の私の第二のプログラムであるとして
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(_
"ODBC;DBQ=" & Path & ";DefaultDir=" & Path & _
";Driver={Microsoft Access Text Driver (*.txt, *.csv)};DriverId=27;FIL=text", _
";MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;" _
), Destination:=ThisWorkbook.Sheets("Sessions").Range("$A$1")).QueryTable
.CommandText = Array(_
Selection & Chr(13) & Chr(10) & "FROM `" & NameFile(1) & "` `" & NameFile(2) & "`" & _
Chr(13) & Chr(10) & Condition)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Session"
.Refresh BackgroundQuery:=False
End With
私は、VBAでの接続ではかなり新しいです。それはおそらく非常に簡単に修正するが、私は私の場合のための解決策を見つけることができませんでした。
答え: 'Destination:= Activesheet.Range(" $ A $ 1 ")' – Rory
Thxです。範囲( "$ A $ 1") 範囲( "$ A $ 1")、activesheet.range( "$ A $ 1")、ThisWorkbook.Sheets( "セッション")範囲( "$ A $ 1") 正確には、指定されたものは正しいものです(コンピュータ上のファイルを含むフォルダへのリンク)。 –
Source引数からArray()コマンドを削除してみてください。不要です。 – Rory