質問: ### 前提・実現したいこと 日付の範囲を入力し検索すると、部署事の納品済みの製品がグラフで表示されるようにしたい。 現在日付から1年間の範囲を自動で取得する方法も知りたい。 良い参考などあればご教授お願いします。 ### 発生している問題・エラーメッセージ ``` クエリの条件でBetween #2018/04/01# And #2019/03/31#のように設定していて毎回条件を修正するのは面倒。 データテーブルで金額を通貨型で表示できない。 データテーブルで日付を表示したいが、Apr-18のように表示されてしまう。 クエリの配置をずらしたりするとデータシートのデータが見えなくなる。 ``` ### 該当のグラフ ークエリー ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/62184d1435a245f2a5dba66b19c91876.jpeg) 説明: a:購買テーブル b:購買明細テーブル c:部署テーブル KINGAKUの合計はb:購買明細にある金額の総合計の事です。 NOHIN_YMはNOHIN_DATEには年月日が元々入っているので、年月までの情報でグループ化しています。 Where条件としては納品日が記入されているBetween #2018/04/01# And #2019/03/31#の範囲で、 購買明細(b)の管理番号があるデータを条件としています。 ーフォームー ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/42ac0c725131cdac4b01670a76a17797.jpeg) ーグラフの値集合ソースー ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/63560264e8267803bbfafda5cdb19ef6.jpeg) 説明:クエリを参照しています。 NOHIN_YMは年月の日付、BUSHO_NAMEは部署名、 KINGAKUの合計の合計は購買明細の総合計をさらに合計したものです。 管理番号1 総合計1000 管理番号2 総合計2000 管理番号3 総合計3000 総合計の合計6000 グラフではその総合計の合計を部署事に指定した日付範囲で表示しています。 ### 試したこと クエリの条件に1年間のデータを取得するように ``` IIf(Format$(Date$(),”mm”)=”01′′ Or Format$(Date$(),”mm”)=”02′′ Or Format$(Date$(),”mm”)=”03′′, Format$(DateAdd(“yyyy”,-1,Date()),”yyyy”), Format$(Date$(),”yyyy”)) ``` を入れてみたが、何も表示されない。 ### 補足情報(FW/ツールのバージョンなど) 環境:Windows10 ACCESS2016 **追記** ーテーブルー 部署テーブル ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/a750f0b18ab831c63ab777836811a235.jpeg) 購買テーブル ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/ed61a8fc74c70b40de70b0ccd0508a9e.jpeg) 購買明細テーブル ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/9a7ef3409021f7ea453b08421c032884.jpeg) ワーク購買明細テーブル ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/758a7cc7df7cfcce1db04733846b2f38.jpeg)
回答: 会計年度は、実日より3カ月を引いたものの年で算出できます。 求めた年の4/1~翌年の3/31までの範囲とします。 ``` Between CDate(Format(DateAdd("m", -3, Date()), "yyyy") & "/04/01") And CDate(Format(DateAdd("m", -3, Date()), "yyyy") + 1 & "/03/31") ``` ですけど、年度の締めが終わってから出力しようとしても出力できなくなるので、年度をパラメータとした方が良いのではないでしょうか。 追記 NOHIN_DATEが文字型ということなので、格納される文字列の書式は'''yyyy/mm/dd'''と想定して変更しています。 ``` Between Format(DateAdd("m", -3, Date()), "yyyy") & "/04/01" And (Format(DateAdd("m", -3, Date()), "yyyy") + 1) & "/03/31" ``` 追記2 納品日: [フィールド] 日付:Format(NOHIN_YM,"yyyy/mm/dd") 金額: [フィールド] KINGAKUの合計の合計:Format(Sum(KINGAKUの合計),"\\#,##0") [集計]演算