2

何時間も費やして解決しようとしても結果が得られなかった問題について、ここの誰かが私を助けてくれることを本当に望んでいます.

Excel VBA で MS クエリを使用して、csv ファイルとのデータ接続を確立しようとしています。特定の列に日付フィルターを適用して、csv ファイルからスプレッドシートにデータをフィルター処理する必要があります。日付が固定されている場合 (つまり、VBA でハードコーディングされている場合)、接続は完全に正常に機能します。ただし、日付をユーザー入力にしたいので、問題に直面しています。基本的に、日付変数を接続に渡す方法がわかりません。

マクロが正常に動作すると、SQL ステートメントは次のようになります。

.CommandText = "SELECT * FROM " & csvName & " WHERE SECTYPE='GS' AND LAST TRADED DATE={ts '2016-01-29 00:00:00'}"

変数 sValnDate を介して日付を渡そうとすると、「SQL 構文エラー」が発生します。

.CommandText = "SELECT * FROM " & csvName & " WHERE SECTYPE='GS' AND LAST TRADED DATE={ts " & sValnDate & "}"

変数のいくつかの構成を試しました。私はそれを日付、正しいコマンドとまったく同じ文字列、正しいコマンドで必要に応じてフォーマットされた日付、変数の各フォーマットで中括弧を保持および削除しようとしましたが、何も機能しませんでした。

物事を単純にするために、ここで 1 つのステートメントを提示しました。ただし、ブロック全体 (15 ~ 20 行以内) を表示する必要がある場合は、お知らせください。

前もって感謝します

PS: プレビューを見ただけです。どういうわけか、「LAST TRADED DATE」あたりがここで削除されました。

4

1 に答える 1