※ ChatGPTを利用し、要約された質問です(原文:VBA SQL文 日付判定で抽出の仕方)
VBA SQL文 日付判定で抽出の仕方
2010/11/25 14:36
このQ&Aのポイント
VBAとSQLを組み合わせて、特定の条件に基づいてテーブルからレコードを抽出する方法について教えてください。
対象テーブルから現在有効なレコードを抽出し、ExcelのVBAで作成したフォーム上のリストビューコントロールに表示する方法について教えてください。
具体的には、テーブルのフィールドをすべて含めつつ、重複のないレコードを抽出し、現在の日付と比較して有効なレコードだけを取得したいです。
適用開始日を条件にして現在の一覧抽出の仕方
助けてください。
SQL記述 初級ですが、基本的な記述は出来ます。
VBA記述 実務で行っています。
【環境】
Access 2003
Excel 2003 VBA (+ADO 2.8 )
やりたい事はテーブルから現在有効になっているレコードの一覧を抽出する事です。
Access mdbファイルに対象テーブルがあります。
ADODB.Recordset オブジェクトに取得したレコードセットを当てて、そこから
ExcelのVBAで作ったフォーム上のリストビューコントロールにAddする予定です。
しかし、一覧を抽出する為のSQL文で、つまづいてしまいました。
条件は
(1)抽出した一覧にコードは重複していない事
(2)現在の日付と比較し、有効になっているレコードを含め、未来のレコードは含めない事
(3)対象テーブルのフィールドは全て含める
ちょっと、条件の説明がわかりづらく感じるので、対象テーブルのモデルと得たい結果を
表現します。
【対象テーブル(単一テーブル)】
INDEX コード 適用開始日 値
--------------------------------
1 B0001 2010/10/01 A
2 B0001 2010/11/12 B
3 B0002 2010/09/01 A
4 B0002 2010/10/01 B
5 B0002 2011/01/01 C
6 B0003 2010/10/01 A
【得たい結果】
(現在の日付は2010/11/25とします)
INDEX コード 適用開始日 値
--------------------------------
2 B0001 2010/11/12 B
4 B0002 2010/10/01 B
6 B0003 2010/10/01 A
サブクエリ等を使ってみましたが、私のスキルだと上手くいきませんでした(;_;)。
このぐらいの処理になると、いつもプログラムで処理してましたが、
(VBやVBAでの処理なら、全然問題なく得たい結果を実現できます。)
そのせいもあってか、一向にSQL文記述が上達しません。
パフォーマンスやステップ数低減、将来MS SQLServerへのマウントする意向もあり
どうしても、一回のSQL発行でこの抽出を実現したいのです。
皆様、ご教授の程、宜しくお願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
ありがとう御座います!!本当に助かりました。 頂いたSQL文をあてこんだだら、見事に得たい結果が得られました。 このSQLをじっくり解析して、理解を深めたいと思います。 本当にありがとう御座いました。