- ベストアンサー
Accessのフォームで期間指定したいのですが。
すみません教えてください。 元になるデータクエリの"QA"の中で、受付期間を毎月21日-翌月20日間でのデータを出して、その"QA"のデータから抽出条件をつけたクエリが"Q1"、"Q2"、"Q3"とあります。 元になるデータをパラメータクエリにしてみたのですが、"Q1"から"Q3"のクエリもパラメータになって聞いてくるので面倒なので元データの"QA"の期間指定を一回して、保存するフォームを作りたいなと考えています。 というかそうゆうことってできますか? ただ思っているだけなのでできるのかなと思います。 それと、期間指定のときに毎月21-翌月20と決まっているので、できれば月だけを指定するような形にしたいと思ってるのですが、それはどうでしょうか? 初心者ですみません。なにとぞご鞭撻いただきたくよろしお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォームにテキストボックスを作りDate0とします。 そのDate0に月数を入力するようにします。 >毎月21日・・を求める場合 CVDate(Year(Date()) & "/" & [Date0] & "/" & "21") でDate0に7を入力すると03/07/21が得られます。 >翌月20日・・を求める場合 DateAdd("d",-1,DateAdd("m",+1,CVDate(Year(Date()) & "/" & [Date0] & "/" & "21"))) で翌月の03/08/20が得られます。 フォーム上に表示したい場合はテキストボックスDate1とDate2を作りDate1のプロパティのデータのレコードソースに =CVDate(Year(Date()) & "/" & [Date0] & "/" & "21") Date2のレコードソースに DateAdd("d",-1,DateAdd("m",+1,[Date1])) で表示できます。 クエリなどの抽出条件でBetweenを使うのなら Between CVDate(Year(Date()) & "/" & [Date0] & "/" & "21") And DateAdd("d",-1,DateAdd("m",+1,CVDate(Year(Date()) & "/" & [Date0] & "/" & "21"))) もしくはフォーム上のDate1とDate2に表示された値を使うのであれば Between フォーム名![Date1] And フォーム名![Date2] にすれば出来ます。
その他の回答 (1)
- raly-raly
- ベストアンサー率29% (24/82)
こんにちは。 クエリの抽出条件を動的に変えたい、とかそういうことですよね? やり方の概要としては、フォームにパラメータを入れるテキストボックス貼り付けて、そこに入力された値をもとにクエリのSQLを書き換えるプロシージャをつくる、だと思うのですが。 もっと簡単なやり方があるのかもしれませんが、何か複雑なことに発展しようとしているなら、VBA・SQL・DAOをキーワードに調べてみては、と思います。
お礼
O_cyanさん。 初心者の私にもとってもわかりやすく教えていただきありがとうございます。 本当に助かりました。勉強になります。また、何かありましたらよろしくお願いいたします。感謝!!!。