- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessでBetween条件を含むクエリーで、Between条件を)
AccessでBetween条件を含むクエリーで、データを抽出する方法
このQ&Aのポイント
- AccessでBetween条件を含むクエリーで、データを抽出するにはどのように記述すればよいでしょうか?また、値入力項目の全てのテキストボックスに入力しなくてもデータを抽出できるようなフォームを作成する方法についても教えてください。
- AccessでBetween条件を含むクエリーで、データを抽出する方法を教えてください。また、値入力項目を全て入力しなくてもデータを抽出できるようなフォームの作成方法も知りたいです。
- AccessのクエリーでBetween条件を使ってデータを抽出する方法を教えてください。また、値入力項目の全てを入力しなくてもデータを抽出できるフォームを作成するにはどのように記述すればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブル名を出荷、フィールドはID、 顧客名、商品名、出荷日とします。 SELECT tbl出荷.ID, tbl出荷.顧客名, tbl出荷.商品名, tbl出荷.出荷日 FROM tbl出荷 WHERE (((tbl出荷.顧客名)=[Forms]![検索フォーム]![顧客名]) AND ((tbl出荷.商品名)=[Forms]![検索フォーム]![商 品名]) AND ((tbl出荷.出荷日) Between Nz([Forms]![検索フォーム]![出荷開始],#1/1/1000#) And Nz([Forms]![検索 フォーム]![出荷終了],#12/31/9999#))); これでどうでしょう。
その他の回答 (1)
- tag1701
- ベストアンサー率54% (67/123)
回答No.1
こんにちは。 検索条件で範囲で抽出の場合、アスタリスク~アスタリスクでは 結果が出ません。(当然、空白~空白では、そういうデータが 無いので出てきません) 回避策のひとつとして、出荷開始の規定値を0とし、出荷終了の規定値 を今日の日付になるようにするとか、若しくはもっとずっと先の 日付が入るようにしておき、日付の絞込みをする場合に 変更入力するなどされてはどうでしょうか? (VBAで記述すれば、入力ない場合は検索条件から記述を 外すという風にすれば可能ですが。。ちょっと面倒です)
質問者
お礼
tag1701さん、アドバイスありがとうございます。 確かに言われてみれば、範囲指定でアスタリスクだと抽出不可ですね。 VBAでやってみようと試みたのですが・・・中々上手くいかず。まだまだ勉強不足です。
お礼
piroin654さん、アドバイスありがとうございます。 アドバイス頂いたコードを入力してみましたが、どうも上手くいかず・・・Accessのバージョンが古いせいでしょうか?また、実際はテーブルからではなく、選択クエリーのデータ抽出でしたので、そのせいかもしれません。 (私の日付の入力書式が「yyyy/mm/dd」だったので、入れ替えてみましたが、それでも上手くいきませんでした。) ただ、「Between Nz」を使うやり方を教えて頂いたので、それを基に試行錯誤したところ、 WHERE (((tbl出荷.顧客名)=[Forms]![検索フォーム]![顧客名]) ではなく WHERE (((tbl出荷.顧客名) Like [forms]![検索フォーム].[顧客名]) で また、日付の部分の「#」を外してみたところ、希望する条件で抽出できました。 本当は#をつけた方が正確な条件で抽出できると思うのですが・・・とりあえずこれでいこうと思います。