Sum(IIf([月]=0,[仕入数量])) AS 7月仕入数量,
Sum(IIf([月]=0,[仕入金額])) AS 7月仕入金額,
Sum(IIf([月]=0,[売上数量])) AS 7月売上数量,
([期首金額]+[7月仕入金額])/([期首数量]+[7月仕入数量])*[7月売上数量] AS 7月払出金額,
Sum(IIf([月]<=0,[仕入数量]-[売上数量])) AS 7月数量,
[期首金額]+Nz(Sum(IIf([月]=0,[仕入金額])),0)-Nz([7月払出金額],0) AS 7月金額,
上記、NZを追加したことと
union all
SELECT
仕入商品ID,
"",
iif(Month([仕入日])<7,Month([仕入日])+6,Month([仕入日])-7),
仕入数量,
仕入単価*仕入数量,
0,
0
FROM t仕入明細, t決算日
WHERE 仕入日 Between DateAdd("yyyy",-1,[決算日]+1) And [決算日]
SELECT 商品ID, Max(q.商品名) AS 商品名, Sum(IIf(月=-1,仕入数量)) AS 期首数量, Sum(IIf(月=-1,仕入金額)) AS 期首金額,
Sum(IIf([月]=0,[仕入数量])) AS 7月仕入数量, Sum(IIf([月]=0,[仕入金額])) AS 7月仕入金額, Sum(IIf([月]=0,[売上数量])) AS 7月売上数量, ([期首金額]+[7月仕入金額])/([期首数量]+[7月仕入数量])*[7月売上数量] AS 7月払出金額, Sum(IIf([月]<=0,[仕入数量]-[売上数量])) AS 7月数量, [期首金額]+Sum(IIf([月]=0,[仕入金額]))-[7月払出金額] AS 7月金額,
~中略~
FROM
( SELECT 商品ID, 商品名, -1 AS 月, 期首数量 AS 仕入数量, 期首金額 AS 仕入金額, 0 AS 売上数量, 0 AS 売上金額
FROM t商品マスタ, t決算日
union all
SELECT 仕入商品ID, "", Month([仕入日])-7 Mod 12, 仕入数量, 仕入単価*仕入数量, 0, 0
FROM t仕入明細, t決算日
WHERE 仕入日 Between DateAdd("yyyy",-1,[決算日]+1) And [決算日]
union all
SELECT 売上商品ID, "", Month([売上日])-7 Mod 12, 0, 0, 売上数量, 売上単価*売上数量
FROM t売上明細, t決算日
WHERE 売上日 Between DateAdd("yyyy",-1,[決算日]+1) And [決算日]
) AS q
GROUP BY 商品ID;
q在庫表仕入
SELECT
t商品マスタ.商品ID,
t商品マスタ.商品名,
t商品マスタ.期首数量,
t商品マスタ.期首金額,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q仕入明細]![仕入数量])) AS 7月仕入数量,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q仕入明細]![仕入金額])) AS 7月仕入金額,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q仕入明細]![仕入数量])) AS 8月仕入数量,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q仕入明細]![仕入金額])) AS 8月仕入金額,
・・・・・以下繰り返し
FROM t決算日, t商品マスタ INNER JOIN q仕入明細 ON t商品マスタ.商品ID = q仕入明細.仕入商品ID
GROUP BY t商品マスタ.商品ID, t商品マスタ.商品名, t商品マスタ.期首数量, t商品マスタ.期首金額;
q在庫表売上
SELECT
t商品マスタ.商品ID,
t商品マスタ.商品名,
t商品マスタ.期首数量,
t商品マスタ.期首金額,
Sum(IIf([q売上明細]![売上日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q売上明細]![売上数量])) AS 7月売上数量,
Sum(IIf([q売上明細]![売上日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q売上明細]![売上数量])) AS 8月売上数量,
・・・・・以下繰り返し
FROM t決算日, q売上明細 INNER JOIN t商品マスタ ON q売上明細.売上商品ID = t商品マスタ.商品ID
GROUP BY t商品マスタ.商品ID, t商品マスタ.商品名, t商品マスタ.期首数量, t商品マスタ.期首金額;
Private Sub コマンド25_Click()
Dim a As String
a = MsgBox("請求書履歴に登録しますか。はいを押すと請求書履歴に保存されます。", vbOKCancel)
If a = vbCancel Then
MsgBox ("中止しました")
Exit Sub
End If
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
'Connectionは一つで共有する
Set cnn = Application.CurrentProject.Connection
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs.Open "Q_月間請求書履歴", cnn, adOpenKeyset, adLockOptimistic 'テーブルを開く
rs1.Open "T_seikyu", cnn, adOpenKeyset, adLockOptimistic
rs.MoveFirst '"月間請求書履歴"(rs)の先頭レコードへ移動
Do Until rs.EOF
'"月間請求書履歴"(rs)のデータを"データ"(rs1)に新規追加
rs1.AddNew
rs1!請求書NO = rs!請求書NO
rs1!請求日 = rs!請求日
rs1!会社名 = rs!会社名
rs1!氏名 = rs!氏名
rs1!現場名 = rs!現場名
rs1!工事名 = rs!工事名
rs1!請求金額 = rs!請求金額
rs1.Update
'"月間請求書履歴"(rs)を次レコードへ移動
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs1.Close
Set rs1 = Nothing
cnn.Close
Set cnn = Nothing
DoCmd.OpenForm "F_seikyu"
End Sub
はい、基本はそうなりますね。
どのような表示をご希望かにもよりますが、別ラベルではなく、現状の行事予定ラベルに出力させる方法ではいいかもしれません。
例えば下記のような感じなら、ラベルを追加する必要はないです。
どのようなレイアウトを考えているのか、もう少し具体的に説明していただけると、
回答しやすいです。
返信ありがとうございます。
教えていたコードをもとに作成してみましたが、12か月分入力すると
また「クエリが複雑すぎます」と言われてしまいました。
自分で変えた所は、
Sum(IIf([月]=0,[仕入数量])) AS 7月仕入数量,
Sum(IIf([月]=0,[仕入金額])) AS 7月仕入金額,
Sum(IIf([月]=0,[売上数量])) AS 7月売上数量,
([期首金額]+[7月仕入金額])/([期首数量]+[7月仕入数量])*[7月売上数量] AS 7月払出金額,
Sum(IIf([月]<=0,[仕入数量]-[売上数量])) AS 7月数量,
[期首金額]+Nz(Sum(IIf([月]=0,[仕入金額])),0)-Nz([7月払出金額],0) AS 7月金額,
上記、NZを追加したことと
union all
SELECT
仕入商品ID,
"",
iif(Month([仕入日])<7,Month([仕入日])+6,Month([仕入日])-7),
仕入数量,
仕入単価*仕入数量,
0,
0
FROM t仕入明細, t決算日
WHERE 仕入日 Between DateAdd("yyyy",-1,[決算日]+1) And [決算日]
modだと12月以降の数字がマイナスになってしまったので上記のように変えてみました。
自分で直した所で式が複雑になってしまったのでしょうか。
よろしくお願いいたします。
おはようございます。ファイル送信致しました。よろしくお願いします。
「Q_月間請求書履歴」クエリをダブルクリックで開いた場合はエラーなく開けますか。
もし、開けるなら、呈示されている情報だけでは、やはり、原因を特定するのは難しいですね。
前のようにファイルを送信フォームから送ってもらえますか。
お騒がせしました。自己解決です。
セキュリティの設定が正しくできていなかったようです。
マクロを有効にしたら改善しました。
元データをうまいことくっつけてから集計は最後にやるのがいいんじゃないかなぁと
ついでに「日付」のままだとごちゃごちゃしてしまうところを、扱いやすいように「月(のようなもの)」に変換しています
期首をマイナス1月の仕入れとみなし、7月から翌6月は0月~11月として計算式が単純になるようにしています
※「月次移動平均」に関係する計算式そのものの是非は見ていません
画像のアップロードができていなかったので、改めて載せます
以下続き
q在庫表仕入
SELECT
t商品マスタ.商品ID,
t商品マスタ.商品名,
t商品マスタ.期首数量,
t商品マスタ.期首金額,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q仕入明細]![仕入数量])) AS 7月仕入数量,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q仕入明細]![仕入金額])) AS 7月仕入金額,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q仕入明細]![仕入数量])) AS 8月仕入数量,
Sum(IIf([q仕入明細]![仕入日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q仕入明細]![仕入金額])) AS 8月仕入金額,
・・・・・以下繰り返し
FROM t決算日, t商品マスタ INNER JOIN q仕入明細 ON t商品マスタ.商品ID = q仕入明細.仕入商品ID
GROUP BY t商品マスタ.商品ID, t商品マスタ.商品名, t商品マスタ.期首数量, t商品マスタ.期首金額;
q在庫表売上
SELECT
t商品マスタ.商品ID,
t商品マスタ.商品名,
t商品マスタ.期首数量,
t商品マスタ.期首金額,
Sum(IIf([q売上明細]![売上日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-11,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0),[q売上明細]![売上数量])) AS 7月売上数量,
Sum(IIf([q売上明細]![売上日] Between DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-10,0)+1 And DateSerial(Year([t決算日]![決算日]),Month([t決算日]![決算日])-9,0),[q売上明細]![売上数量])) AS 8月売上数量,
・・・・・以下繰り返し
FROM t決算日, q売上明細 INNER JOIN t商品マスタ ON q売上明細.売上商品ID = t商品マスタ.商品ID
GROUP BY t商品マスタ.商品ID, t商品マスタ.商品名, t商品マスタ.期首数量, t商品マスタ.期首金額;
返信ありがとうございます。
テーブル等省略してしまってすみません。
追加クエリにすると前月以前のデータを変更した場合でも上手く動くのでしょうか、
商品マスタに各月の在庫数量と在庫金額を更新クエリで入力させれば良いのかとも思ったのですが
やり方がよく分からず・・
お手数ですが教えてもらえないでしょうか。
よろしくお願いいたします。
t決算日
決算日 2020/6/30
t商品マスタ
blob:https://zawazawa.jp/2d95d575-a70c-49d7-9f0c-52d99b7e4e45
t仕入明細
blob:https://zawazawa.jp/92a252de-14c8-4f2e-b55f-c99094e192fd
t売上明細
blob:https://zawazawa.jp/5606e247-2a8b-40d3-80ed-70c928cee4b7
q仕入明細
SELECT
t仕入明細.仕入日,
t仕入明細.仕入先ID,
t仕入明細.仕入商品ID,
t仕入明細.仕入数量,
t仕入明細.仕入単価,
[仕入数量]*[仕入単価] AS 仕入金額
FROM t仕入明細;
q売上明細
SELECT
t売上明細.売上日,
t売上明細.得意先ID,
t売上明細.売上商品ID,
t売上明細.売上数量,
t売上明細.売上単価,
[売上数量]*[売上単価] AS 売上金額
FROM t売上明細;
おはようございます。
SELECT T_請求書メイン.請求書NO, T_請求書メイン.請求日, T_宛先マスタ.会社名, T_宛先マスタ.部署, T_宛先マスタ.氏名, T_現場.現場名, T_請求書メイン.工事名, T_請求書メイン.請求金額, T_請求書メイン.請求状況CD, T_請求状況.内容
FROM T_宛先マスタ INNER JOIN (T_請求状況 INNER JOIN (T_現場 INNER JOIN T_請求書メイン ON T_現場.現場ID = T_請求書メイン.現場ID) ON T_請求状況.請求状況CD = T_請求書メイン.請求状況CD) ON T_宛先マスタ.宛先ID = T_請求書メイン.宛先ID
WHERE (((T_請求書メイン.請求日)>=#3/21/2020# And (T_請求書メイン.請求日)<=#4/30/2020#));
に、なります。よろしくお願いします。
この方法は、罫線の配置などのデザインは面倒ですか、VBAコードは最小限で比較的理解しやすい方法ですので、頑張って理解して、活用してください。
hatenaさん
ありがとうございます。
作成していただいた内容を確認させていただきました。
感動しました。まさしくこの形が私の望むものでした。
他の内容の日報も月報も作成していかないといけないので
詳しく中身を確認しながら作成していきます。
本当に、本当に大感謝です。
元のテーブルの構成は不明なので、推測で回答するしかないですが、
クエリを追加クエリにしていったんテーブルに出力してから、そのテーブルをもとにクエリを作成するとうまくいくかも知れません。場合によってはその方が高速な処理になる場合もあります。
送付されたファイルを下記の方法で改修しました。
レコードがない場合も用紙の最後まで罫線を出力する関数 - hatena chips
下記をクリックしてください。
nippou1.zip
詳細は上記のページに解説してありますので参照してください。
最終ページのみ合計を表示、途中ページは「次へ続く」を表示するVBAを追加しています。
1ページ16件
17行目に「合計」または「次へ続く」を表示する仕様です。
hirotonさんの送付された現状のファイルです。
nippou.zip
「Q_月間請求書履歴」クエリのSQLを提示してもらえますか。
おはようございます
下記の部分になります。SQLステートメントが正しくありません。'DELETE,'INSERT',・・・と続きます
どのコードでエラーになりますか。
jumeさん、まだ、解決していませんか。
この罫線を最後まで出力する方法はいろいろあります。私のブログでも下記のようにいろいろ紹介しています。
レコードがない場合も用紙の最後まで罫線を出力する - hatena chips
レコードがない場合も用紙の最後まで罫線を出力する NextRecord版 - hatena chips
レコードがない場合も用紙の最後まで罫線を出力する関数 - hatena chips
余白に応じて行数指定無く用紙の最後まで罫線を出力する - hatena chips
それぞれ一長一短ですし、どれも理解して使いこなすのはなかなか難しいです。
また、レイアウトによってどの方法か最適なのかも変わります。
どうしてもうまくできないようでしたら、現状のレポートを含んだファイルを送信していただければ、それを見て改修できるかもしれません。右のサイドカラムの下のほうに送信フォームがありますので、そこからファイルを送信してください。
太い罫線については無くそうという話ではなくて、うまくいかないのならまずは必要最小限のパーツのみで表示がうまくいくかどうかを確認しましょうということです。問題の切り分けの基本です
また>> 1で後に提示した方法であれば1ページ分の罫線をすべて先に描画してしまうという方法なので太線についても問題ないはずです
一つ仕様を確認しましょう
仕様A.合計の行は明細行の一番下に入れたい
仕様B.合計の行は明細行の一番下のさらに下でもいい
仕様A.は、おおよそ質問にあるような流れで、グループフッターを使ってデータを1行追加するようなイメージです。(明細が17行で合計は必ず17行目)
この方法でそのままやりたいということであればhatenaさんの>> 3を合わせて確認された上で、実際にやってみたレポートの設定とモジュールを提示してください
仕様B.は、ページフッターを使って条件に合わせてページフッターの表示を変えることになります。(明細は16行で、合計の表示用にページフッターの高さを確保しておく)
ACCESSのレポートに関してはこちらのアプローチのほうが情報が多いように思います。特に、テキストの表示だけであればVBAも必要なく実装できるようです。グループの最後のページのフッタにだけ表示する
いつもお世話になっております。以前この件でお世話になったものです。
テーブル、クエリ等の名前が紛らわしくこのファイルをコピペして新しいものを作り直したら以下のようにしたら
また同じところでエラーがでてしまいました。上を見直して色々やってみたのですが
”テーブルを開く”と書いてありますがクエリでも大丈夫ということでしたよね。
すみませんがよろしくお願いします。
変更点
月間請求書履歴→Q_月間請求書履歴
データ→T_seikyu
請求書履歴→F_seikyu
ご返答ありがとうございます。
hirotonさん
間違っておりました。
参考にさせて頂いたサイトの2つ目でチャレンジしても、ページヘッダーの部分を表すことができていません。
また太い罫線を設定しているのは、それぞれの小計、合計を太くして強調させたいためで、出来れば太い罫線は
このまま残しておきたいと考えています。
hatenaさん
明細行は別に17行固定ではなくても大丈夫です。
おっしゃる通り、「次頁へづづく」など表示できれば一番いいのかもしれませんが、どうやって表示させれるか
わからない状態です。
あいまいな説明ばかりで申し訳ありません。
ご回答ありがとうございます。
Printメソッド以外でも、APIか何かで解決出来ればと思っていたのですが、やはり無理なようですね。
横罫線は、詳細セクションの下辺に配置すれば、隙間が空いたり、2重に重なったりはしなくなると思います。
画像をみると明細行は17行固定のようですが、
もし、データ件数が17件の場合はどのように表示しますか。
1ページ目に17件表示して、合計は2ページの17行目ですか。
仕様的には、1ページ目の17行目は、「次頁へづづく」などと表示させるのがいいように思えます。
どうでしょうか。
Printメソッドは、Unicode文字(Shift JISにない文字)に対応していないようです。
テキストボックスに表示させることで対応するしかなさそうです。
2番目の方法でデータの出力がうまく言っているならそこから煮詰めればいいんじゃないかな
最初の画像で太さの違う罫線が含まれてるからそのあたりが原因だと思うけど情報がなさ過ぎてどうこう言えないけども
罫線の書式が完全に固定ならレコードがない場合も用紙の最後まで罫線を出力すると組み合わせるとか
ご丁寧なご回答ありがとうございます。
解決策まで分かりやすくご提示いただき助かります。
エクセルのように、単純にコピー複製とはいかないのですね。
初めてaccessでの作業をしているので特徴を把握できず悩んでおりました。
問題点がはっきり分かって気分が軽くなりました。
ちょっと作業が増えそうですが、解決策1でコツコツ作業したいと思います。
ありがとうございました。
サブフォームを使ったフォームでしたか・・・
サブフォームも外部のフォームを参照するという仕組みなので、コピーしただけのフォームではすべて同じサブフォームを使っていることになります。当然、どこかで修正を入れればそのサブフォームを使っているフォームすべてに影響がでます。
また、フィルターを使ってと回答しましたが、この場合、フィルターもサブフォームそのものに設定することになりますので、すべて共通の設定となってしまいます。
解決策1
サブフォームも各月分用意する
(フォームをコピーした後サブフォームのソースオブジェクトを変更する)
解決策2
VBAを使いフォームを開くたびにサブフォームのフィルターを設定する
アドバイスありがとうございます。
「4月管理フォーム」の場合、サブフォームに「Q-4月日報一覧」というクエリを「▽ボタン」から指定しました。
一時的にはこれで、4月分のクエリが正しく表示されますが、他に複製したフォームにも同じクエリが表示されてしまいます。
「Q-4月日報一覧」のクエリは、1か月毎に12個あり、それぞれ「Q-5月日報一覧」、「Q-6月日報一覧」と分けられています。
(↑のクエリは、皆、同じテーブル(T-日報マスタデータ)から1か月毎にデータが抽出されているものです)
フィルターの抽出条件を使ったことがなく、抽出条件式について自分でも調べてみたいと思います。
hirotonさんの回答と同じですが、
レコードソースはテーブルを設定するか、クエリなら抽出条件を設定していないクエリを設定します。
そのうえで、フォームの「フィルター」プロパティに抽出条件式を設定するといいでしょう。
抽出条件式が分からない場合は、現状のテーブル名とフィールド名を提示してください。
クエリなら、SQLビューにしてSQL文をコピーして貼り付けてください。
それぞれのフォームの「レコードソース」にはどのような値を設定していますか?
作成済みのクエリを「レコードソース」として指定した場合は、それは、作成済みのクエリを参照するという形になります。
この場合は、「レコードソース」からクエリを修正すると大本のクエリが変更されますので、このようなフォームをコピーして「レコードソース」からクエリを修正すると同様のフォームすべてに影響がでます。
共通のクエリを基にそのフォームだけのデータを表示したいのであれば各フォームのプロパティで「フィルター」に抽出条件を設定し、「読み込み時にフィルターを適用」をはいにすると良いでしょう。
kさん、解決できてよかったですね。
しかし、これでは、せっかく回答してくださった回答者、後からここを閲覧した人にとっては、まったく無価値のスレッドになってしまいます。(何が原因で、どうして解決したのかが、質問者以外にはまったく不明)
私の回答で情報追加の依頼をした件について、情報を提示してもらえませんか。
みなさん回答ありがとうございました。
もう一度考え直した結果、以下のコードでうまくいきました。
IIf( C >= KARA And C <= MADE ,IIf(Date()> C , B , A ), A )
情報が不足しているので、下記の点について情報を補足してください。
まずは、これはどこに記述しているのか、明確にしてください。
コントロールソース、クエリの抽出条件欄などに式として記述しているのか。
SQLビュー、レコードソース、値集合ソースなどにSQLコードとして記述しているのか。
VBAウィンドウにVBAコードとして記述しているのか。
上記のどれにしても、一部ではなく全体を提示してください。
(式全体、SQL文全体、VBAならプロシージャ全体)
変数への代入に問題があると思われます。関係するコードをすべて提示してください
横から失礼します。 変数の前後に"#"で囲まないといけないのでは?
日付型の条件式では#で囲む必要があります。 変数で対応するときは#をダブルクォーテーションで囲み
アンパサンド(&)で続く文字列を連結します。
今日の日付もToday()で対応かなと思います。 カッコは不要であれば入力後に自動で消えると思います。
iif("#" & today() & "#" < C , A , iif( C >= "#" & KARA & "#" & and C <= "#" & MADE & "#" , B , A ))
2020/3/1をKARA、2020/3/31をMADEとして式を入れてみました。
一番下の整理した式ではうまくいきませんでしたので
iif(今日 < C , A , iif( C >= KARA and C <= MADE , B , A ))
で、実行しましたが、やはりうまくいきません。
今日がCを過ぎていて、CがKARAとMADEの期間内であればB、期間外であればAを表示したいのですが
すべてAが表示されてしまいます。。。
日付をコード上に直接日付の書式を使って記述する場合は「#」で囲む必要があります。
✖ 2020/3/1
〇 #2020/3/1#
VBAにはある期間に含まれるを直接的に表現する方法はありませんので、2つの条件(開始条件、終了条件)を組み合わせて表現します。条件の組み合わせなのでiifをネストさせても表現できますが論理演算子を用いると簡単です。
2020/3/1から2020/3/31の間にある場合
これを組み合わせて質問の条件をそのまま書けば
となりますが条件を整理して
とするとすっきりして良いと思います。(
今日 > C
部分で上の式と比較演算子が変わっているところに注意してください)中央寄せは、下記を参考にしてください。
Accessウィンドウをディスクトップの中央に表示する - hatena chips
サイズ変更不可は、下記を参考にしてください。
Accessウィンドウを表示しない方法 Access2007以降版 - hatena chips
上記の内容を理解して組み合わせる必要はありますが。