Microsoft Access 掲示板

リレーションシップの設定

8 コメント
views
4 フォロー

初めまして
アクセス初心者です。
書籍で調べてもわからないので質問させてください。

首記の件ですが、
ABCDの4名がいたとします。
下記をアクセスにインポートします
氏名マスタとしてABCD
2020年10月氏名マスタ ABCDの4名は変わらず
2021年10月氏名マスタ ABDの3名になったときに
リレーションシップ、クエリを設定して
2020年はABCDと表記、2021年はABD、そしてCは空白として時系列のように
エクセルにエクスポートさせたいのですが、うまくいきません・・・😓

どういう設定をしたらよいのか・・・ご教授いただければ幸いです。
よろしくお願いいたします。

yokohama
作成: 2021/10/26 (火) 14:40:32
通報 ...
1

2020年はABCDと表記、2021年はABD、そしてCは空白として時系列のように
エクセルにエクスポートさせたいのですが、うまくいきません・・・😓

エクセルにはどのようなレイアウトで出力したいのか、図示できませんか。

また、「うまくいきません」とのことですが、具体的にどのような手順を試して、どこでどのようにうまくいかなかったのでしょうか。

2
yokohama 2021/10/26 (火) 17:00:35

具体的にやってみたことが下記です。
エクセルのシートに氏名マスタ・2020年10月氏名マスタ・2021年10月氏名マスタを作成し
Accessにインポートして操作してリレーションの紐づけとクエリ抽出してみました。

氏名マスタ
A
B
C
D

2020年10月氏名マスタ 2020年10月氏名番号
A 1
B 2
C 3
D 4

2021年10月氏名マスタ 2021年10月氏名番号
A 1
B 2
D 4

表示させたいものが下記なのですが、

氏名マスタ 2020年10月氏名番号 2021年10月氏名番号
A     1 1
B     2 2
C     3
D     4 4

リレーション・クエリ設定で表示させると氏名マスタのCが消えてしまいます。

氏名マスタ 2020年10月氏名マスタ 2021年10月氏名マスタ
A     1 1
B     2 2
D     4 4

時系列に表示して推移を見たいので、C列も表示させておきたいのですが、
Accessの設定・特性上無理なのでしょうか・・・

3
yokohama 2021/10/26 (火) 17:08:50

具体的にやってみたことが下記です。
エクセルのシートに氏名マスタ・2020年10月氏名マスタ・2021年10月氏名マスタを作成し
Accessにインポートして操作してリレーションの紐づけとクエリ抽出してみました。

氏名マスタ
A
B
C
D

2020年10月氏名マスタ 2020年10月氏名番号
A 1
B 2
C 3
D 4

2021年10月氏名マスタ 2021年10月氏名番号
A 1
B 2
D 4

表示させたいものが下記なのですが、

氏名マスタ 2020年10月氏名番号 2021年10月氏名番号
A      1            1
B      2 2
C     3
D     4 4

リレーション・クエリ設定で表示させると氏名マスタのCが消えてしまいます。

氏名マスタ 2020年10月氏名番号 2021年10月氏名番号
A     1 1
B     2 2
D     4 4

時系列に表示して推移を見たいので、C列も表示させておきたいのですが、
Accessの設定・特性上無理なのでしょうか・・・

4
yokohama 2021/10/26 (火) 17:11:40

何回もすいません 再再送致します これが質問内容です
具体的にやってみたことが下記です。
エクセルのシートに氏名マスタ・2020年10月氏名マスタ・2021年10月氏名マスタを作成し
Accessにインポートして操作してリレーションの紐づけとクエリ抽出してみました。

氏名マスタ
A
B
C
D

2020年10月氏名マスタ 2020年10月氏名番号
A            1
B            2
C            3
D            4

2021年10月氏名マスタ 2021年10月氏名番号
A            1
B            2
D            4

表示させたいものが下記なのですが、

氏名マスタ 2020年10月氏名番号 2021年10月氏名番号
A      1           1
B      2           2
C      3
D      4           4

リレーション・クエリ設定で表示させると氏名マスタのCが消えてしまいます。

氏名マスタ 2020年10月氏名番号 2021年10月氏名番号
A      1           1
B      2           2
D      4           4

時系列に表示して推移を見たいので、C列も表示させておきたいのですが、
Accessの設定・特性上無理なのでしょうか・・・

5

テーブル名とかフィールド名が不明瞭なので、勝手に下記のようだと仮定して回答します。

氏名マスタ

氏名
A
B
C
D
 
2020年10月氏名マスタ
氏名氏名番号
A1
B2
C3
D4

 
2021年10月氏名マスタ

氏名氏名番号
A1
B2
D4
---
クエリのデザインビューで下記のように設定してください。

画像1


あるいは、SQLビューに下記のようにSQLを記述してください。

SELECT
 氏名マスタ.氏名,
 [2020年10月氏名マスタ].氏名番号,
 [2021年10月氏名マスタ].氏名番号
FROM
 (氏名マスタ LEFT JOIN 2020年10月氏名マスタ ON 氏名マスタ.氏名 = [2020年10月氏名マスタ].氏名)
 LEFT JOIN 2021年10月氏名マスタ ON 氏名マスタ.氏名 = [2021年10月氏名マスタ].氏名;

上記クエリの出力結果

氏名2020年10月氏名マスタ.氏名番号2021年10月氏名マスタ.氏名番号
A11
B22
C3
D44
6
りんご 2021/10/26 (火) 23:26:25 c564b@0e907

 例えば、テーブル『2020年』ー テーブル『氏名マスタ』ー テーブル『2021年』のように紐付ける。
 紐付けたところを右クリックして、結合プロパティを選択。(マウスカーソルの照準合わせが難しければ、結合線を左クリック、『2020年』『氏名マスタ』『2021年』、からの右クリック。)
 結合プロパティが、◉「両方のテーブルの結合フィールドが同じ行だけ含める」となっているので、◉「テーブル『氏名マスタ』の全レコードと…」に変更する。
 こんな感じでどうでしょう?

7
yokohama 2021/10/27 (水) 14:56:37

ご教授ありがとうございます。
早速このやり方をもとに実施してみます。

8
yokohama 2021/10/27 (水) 16:49:18

無事に表記させることができました。ありがとうございます。
また不明な箇所がありました時はよろしくお願いをいたします。