Microsoft Access 掲示板

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

16 コメント
views
4 フォロー
3
hiroton 2023/11/09 (木) 16:03:14 67b2d@f966d

元のデータ(テーブル構造)からみないと何ともですが、


『SELECT Q買掛の支払締日と期日.支払締の年月
FROM Q買掛の支払締日と期日
WHERE (((Q買掛の支払締日と期日.買掛先ID)=[Forms]![F買掛仕入一覧]![cb取引先選択]) AND ((Q買掛の支払締日と期日.支払締の年月)>[Forms]![F買掛仕入一覧]![cb支払締の年月1] And (Q買掛の支払締日と期日.支払締の年月)<>"支払処理")) OR (((Q買掛の支払締日と期日.支払締の年月)>[Forms]![F買掛仕入一覧]![cb支払締の年月1] And (Q買掛の支払締日と期日.支払締の年月)<>"支払処理") AND (([Forms]![F買掛仕入一覧]![cb取引先選択]) Is Null))
GROUP BY Q買掛の支払締日と期日.支払締の年月
ORDER BY Q買掛の支払締日と期日.支払締の年月』


下ではNullチェックすることがあるのに上では「=」比較をしているとか


『SELECT Q買掛の支払締日と期日.支払締の年月
FROM Q買掛の支払締日と期日
WHERE (((Q買掛の支払締日と期日.買掛先ID)=[Forms]![F買掛仕入一覧]![cb取引先選択]) AND ((Q買掛の支払締日と期日.支払締の年月)>[Forms]![F買掛仕入一覧]![cb支払締の年月1] And (Q買掛の支払締日と期日.支払締の年月)<>"支払処理")) OR (((Q買掛の支払締日と期日.支払締の年月)>[Forms]![F買掛仕入一覧]![cb支払締の年月1] And (Q買掛の支払締日と期日.支払締の年月)<>"支払処理") AND (([Forms]![F買掛仕入一覧]![cb取引先選択]) Is Null))
GROUP BY Q買掛の支払締日と期日.支払締の年月
ORDER BY Q買掛の支払締日と期日.支払締の年月』


「年月」データに対して「"支払処理"(なにかの文字列)」比較してるとかは首をかしげる部分ですね
とくに、Nullは扱いを間違うと不具合がよく出るので注意が必要です

選択ないときは年月のみで

「選択がない(=Null)ときは全データを対象にする」のはちょっとテクニックが必要ですが、たとえば

SELECT 支払締の年月
FROM Q買掛の支払締日と期日
WHERE 買掛先ID=Nz([Forms]![F買掛仕入一覧]![cb取引先選択],買掛先ID)
 AND 支払締の年月>Nz([Forms]![F買掛仕入一覧]![cb支払締の年月1],"")
 AND 支払締の年月<>"支払処理"
GROUP BY 支払締の年月
ORDER BY 支払締の年月

とかしてみたらどうでしょう?

通報 ...