Microsoft Access 掲示板

年月で期間抽出コード / 15

16 コメント
views
4 フォロー
15
hiroton 2023/11/14 (火) 10:19:34 修正 a415b@f966d

既に説明しているところの繰り返しになりますが

例えば2023・10・01 から 2024・01・31 は年月日が分割されたデータを使ってどうやってコード記述したら

を実現するためにはクエリ(SQL構文)

WHERE not 年<2023 and not (年=2023 and 月<10) and not (年=2024 and 月>1) and not 年>2024

を実行します

ACCESSの仕様として、フォーム上でフォームのレコードソースからさらにデータを抽出する場合、フィルタプロパティにSQLのWHERE句と同じ記述方法を指定することができます
画像1

フォームのプロパティはVBAから操作することができ、フィルタプロパティはMe.Filterで参照し

Me.Filter = "not 年<2023 and not (年=2023 and 月<10) and not (年=2024 and 月>1) and not 年>2024"
Me.FilterOn = True

とすれば、フィルタをかけることができます


なので、NOTはSQL構文で使うところのNOTです。上記のWHERENOTが掛かる部分ごとに分けると次のようになります

WHERE
 not 年<2023
and
 not (年=2023 and 月<10)
and
 not (年=2024 and 月>1)
and
 not 年>2024

NOTは「否定」を表すので、「指定内容以外はOK」となります。つまり、「ここはダメ」を指定します。必要なだけ「ここはダメ」を重ねる(ANDで繋げる)と欲しい部分が残ります

画像1


まぁ、SQLの記述方法はいろいろあるので、ここの方法は一つではありません。NOTを使わずに記述することもできるでしょう。そういうのも経験ですね

通報 ...