「更新日付が文字列」「自動判定が難しい」場合、目視選択+チェックフィールド方式が最も信頼性が高いです。
✅ 目的の再整理
datasetA, datasetB を「名前」で照合(JOIN)
両方の「住所」「更新日付」「備考」を並べて表示
人間が見て「どちらを採用するか」をチェックしたい
チェックボックス付きの編集可能テーブルにしたい
---
✅ 最も自然で安全なAccessの設計手順
手順 1:比較クエリを作る
まず、A/Bの内容を1行で並べる比較クエリを作ります。
例:
-- A側(Aがある行:Aをベースに表示)
SELECT
A.id AS 統合ID,
A.名前 AS 名前,
A.住所 AS 住所_A,
B.住所 AS 住所_B,
A.更新日付 AS 更新日付_A,
B.更新日付 AS 更新日付_B,
A.更新備考 AS 更新備考_A,
B.更新備考 AS 更新備考_B
FROM
(T_A A LEFT JOIN T_B B ON A.名前 = B.名前)
UNION
-- Bにしかない行(Aに存在しない名前)
SELECT
B.id AS 統合ID,
B.名前 AS 名前,
Null AS 住所_A,
B.住所 AS 住所_B,
Null AS 更新日付_A,
B.更新日付 AS 更新日付_B,
Null AS 更新備考_A,
B.更新備考 AS 更新備考_B
FROM
T_B B LEFT JOIN T_A A ON B.名前 = A.名前
WHERE
A.名前 IS NULL;
👉 これで「名前ごとにAとBの値を横並び」にできます。
---
手順 2:このクエリ結果を一度「テーブル化」する
1. クエリを保存(例:Q_比較結果)
2. 右クリック → 「選択クエリを作成クエリに変更」
3. 出力先を「T_統合候補」として実テーブル化
これで「T_統合候補」という編集可能な実データができます。
---
手順 3:T_統合候補にチェックフィールドを追加
テーブルデザインビューで以下のフィールドを追加します:
フィールド名 型 用途
採用A Yes/No A側を採用する場合チェック
採用B Yes/No B側を採用する場合チェック
(または)採用側 短いテキスト "A" または "B" を入力しても可
👉 フォームでチェックボックスを作れば、視覚的に選択できます。
---
手順 4:チェック結果を元に統合テーブルを生成
次のようなクエリを作ります:
SELECT
統合ID,
名前,
IIf(採用A, 住所_A, 住所_B) AS 採用住所,
IIf(採用A, 更新日付_A, 更新日付_B) AS 採用更新日付,
IIf(採用A, 更新備考_A, 更新備考_B) AS 採用備考
FROM
T_統合候補
WHERE
採用A = True OR 採用B = True;
これで「人間が選んだ方だけ」出力されます。
---
✅ メリット
目視確認+選択が可能(誤りを防げる)
「更新日付」が文字列でもOK
Accessフォームで簡単にUIを作れる
将来「自動選択ロジック」を追加する余地もある
---
🧩 代替案(もう少し自動化)
もしもう少し自動にしたいなら:
1. まず上記の比較テーブルを作る
2. VBAで「更新日付_A > 更新日付_B の場合、採用A=Trueにセット」と初期値を埋める
3. 人が残りを確認・修正
これで 「半自動化+目視チェック」 の最もバランスの良い形になります。
---
✅ 推奨構成まとめ
オブジェクト 内容
T_A, T_B 元データ
Q_比較結果 両者を横並びにした比較用クエリ
T_統合候補 チェック可能な実テーブル(Q_比較結果から生成)
Q_採用結果 チェックを反映して最終統合出力