Microsoft Access 掲示板

日付の抜け漏れチェック / 9

18 コメント
views
4 フォロー
9

とりあえず下記でどうでしょう。

SELECT T1.*,
 T2.終了日 Is Null And
 Not (T1.開始日 Is Null OR T1.開始日=DMin("開始日","テーブル1","氏名='" & T1.氏名 & "'")) AS 開始日非連続,
 T3.開始日 Is Null And
 Not (T1.終了日 Is Null OR T1.終了日=DMin("終了日","テーブル1","氏名='" & T1.氏名 & "'")) AS 終了日非連続
FROM
 (テーブル1 AS T1 LEFT JOIN テーブル1 AS T2 ON (T1.開始日-1=T2.終了日) AND (T1.氏名=T2.氏名))
 LEFT JOIN テーブル1 AS T3 ON (T1.終了日+1=T3.開始日) AND (T1.氏名=T3.氏名);

出力結果例

ID氏名会社所属開始日終了日開始日非連続終了日非連続
1あああxxxxx経理2000/12/3100
2あああzzzzz人事2001/01/012010/03/310-1
3あああttttt総務2010/04/022018/08/31-10
4あああxxxxx経理2018/09/012020/03/3100
5あああxxxxx人事2020/04/0100
6いいいxxxxx営業2010/04/012019/01/3100
7いいいxxxxx経理2019/02/012022/03/3100
8いいいxxxxx人事2022/04/012022/05/3100

ただし上記のクエリは更新不可になりますので、
この結果を見ながらテーブルを修正することになります。

通報 ...
  • 10

    hirotonさんが厳密なエラー例を出してますが、
    上記のクエリは、このなかの、2. 3. 6. 7. はエラーになりません。

    すべてのエラーに対応するなら、hirotonさん同様VBAを検討しますね。