Accessの日付抽出がずれるときは、フィールドが日付/時刻型か文字列型か、検索条件が正しいか、時刻が含まれるかを分けて調べます。見た目が2026/04/01でも、内部の値が日時なのか文字列なのかで比較結果は異なります。

日付型フィールドと文字列フィールドの違い

対象テーブルをデザインビューで開き、日付列のデータ型を確認します。文字列のままなら、日付条件による比較ではなく文字列の順序比較になることがあり、思った範囲に収まらない可能性があります。元テーブルのコピーを取り、変換失敗や未入力を含むサンプルを抽出してください。表示形式を日付に見せる変更だけでは、型が自動で正常化されるとは限りません。

日付条件の入力と比較方法を確認

クエリデザインの「抽出条件」には、正しい比較演算子と日付を指定します。Microsoft公式では日付リテラルを#...#で囲む例と、Between ... And ...の使い方を案内しています。例えば>=#4/1/2026# And <#5/1/2026#のように翌月1日未満とする設計なら、4月末日の時刻付きデータまで含められます。日付リテラルの解釈や入力環境が不明なら、DateSerial(2026,4,1)など関数を使った条件へ変更して確認します。

時刻を含むデータの範囲設定

Between #4/1/2026# And #4/30/2026#は上限が4月30日0時の値なので、同日の12時などは範囲から漏れることがあります。日付/時刻を持つデータでは、開始以上・翌期間の開始未満が扱いやすい方法です。逆に「日付のみ」の列で時刻がないことを確認できるなら、単純な日付範囲でも問題ありません。

一致した明細を表示して検算する

4月1日0時、4月30日23時59分、5月1日0時という境界の3行を用意し、最初の2行だけ抽出されるか確認します。件数が違うなら、実際に抽出された明細の日付と時刻を表示して原因を調べます。月合計と明細の合計も比較し、件数だけの一致で完了としないでください。

参考資料

おすすめの記事