Accessについて教えてください。
Accessで以下のようなテーブルを作っております。
(T1)テーブル1(社員データ)
社員NO オートナンバー
所属 テキスト型
氏名 テキスト型
(T2)テーブル2(面談データ)
NO オートナンバー
日付 日付/時刻型
面談者氏名 テキスト型
面談者企業名 テキスト型
社員NO1 数値型
社員NO2 数値型
社員NO3 数値型
社員NO4 数値型
社員NO1,2,3,4はテーブル1の社員NOとリレーションでつながっています。
(T1)社員NO、(T2)NO以外のデータを最終的にレポートで表示します。
ここで、クエリ、フォーム、レポートをいづれでも作成するときですが、
日付(T2) 面談者氏名(T2) 面談者企業名(T2) 社員NO(T1)(非表示) 社員NO1の所属(T1) 社員NO1の氏名(T1) 社員NO(T1)(非表示) 社員NO2の所属(T1) 社員NO2の氏名(T1)・・・(社員NO3、4と続けて)
という風に作りたいです。
クエリ、フォーム、レポートで作成すると、社員NO1(T2)の所属(T1)氏名(T1)、しか表示されません。(これでは当たり前かもしれませんが・・・)
社員NO2、3、4の所属、氏名も表示させたいです。
フォームやクエリ、レポートで社員NO2、3、4(T2)のデータと一致する社員NO(T1)の所属、氏名を表示させる方法はどのようにしたらよろしいでしょうか。
どうかよろしくお願い致します。
No.5ベストアンサー
- 回答日時:
#2 再回答です。
要点だけで、サンプルを作りました。
サンプルでは、内容確認のために「社員NO」自体も入っていますが、
非表示でも項目無しでも同じ動作が可能です。(=所属&氏名のみ表示)
また、面談者の氏名&企業名は、T2_面接 テーブルに項目追加すればよいです。
作成手順は・・・
クエリの画面で、面接用のテーブルにある各社員NOに対して、それぞれ社員テーブルをリンクさせます。
次に、「社員1」とつながった社員テーブル内の、所属&氏名をダブルクリック。
次に、「社員2」とつながった社員テーブル内の、所属&氏名をDクリック。
次に、(サンプルには社員NOもあるため)、それぞれの社員NOもDクリックです。
このクエリを、「SQLビュー」で表示させると、以下の内容になります。
SELECT T1_社員.所属, T1_社員.氏名, T1_社員_1.所属, T1_社員_1.氏名
FROM (T2_面接 INNER JOIN T1_社員 ON T2_面接.社員NO1 = T1_社員.ID)
INNER JOIN T1_社員 AS T1_社員_1 ON T2_面接.社員NO2 = T1_社員_1.ID;
当然ながら、二つのテーブルを作成し、「ツール」⇒「リレーションシップ」内であえて設定をせずに、サンプルのクエリ内での設定を行うだけで、実現可能です。
No.4
- 回答日時:
社員NOが4個あるのだから、T2にはT1を4個結合しなければなりません。
SELECT A.日付,A.面談者氏名,A.面談者企業名,
B.所属 AS 所属1,B.氏名 AS 氏名1,
C.所属 AS 所属2,C.氏名 AS 氏名2,
D.所属 AS 所属3,D.氏名 AS 氏名3,
E.所属 AS 所属4,E.氏名 AS 氏名4
FROM (((T2 AS A
LEFT JOIN T1 AS B ON A.社員NO1=B.社員NO)
LEFT JOIN T1 AS C ON A.社員NO2=C.社員NO)
LEFT JOIN T1 AS D ON A.社員NO3=D.社員NO)
LEFT JOIN T1 AS D ON A.社員NO4=E.社員NO
T2の社員NO1~4が必ず全て設定されるのならINNER JOINでもOKです。
No.3
- 回答日時:
No.2
- 回答日時:
>社員NO1(T2)の所属(T1)氏名(T1)、しか表示されません
&
>社員NO1,2,3,4はテーブル1の社員NOとリレーションでつながっています。
⇒リレーションの設定に問題があるのかも?
「社員1234」のそれぞれに対して、T1が接続されていないのではありませんか?
社員1だけに接続して、「全部に対して有効になっている」と誤った理解をしていることも予想できます。
失礼な指摘で恐縮ですが、リレーションの設定自体に誤った理解がないとも言い切れません。(自己申告の知識なので、こちらでは確認する術がないため。)
⇒クエリで項目選択する際、社員234の所属&氏名の項目を「それぞれに」指定していないのでは?
上記同様の理由から、データ抽出用のクエリが、表示させたい項目を全て選択できていないとも予測できます。
社員1の所属&氏名までは表示できているのでしたら、社員2以降をその社員1と「全て同じ設定状態」にすることで、リレーションされたテーブルから所属&氏名の情報を持ってくることが可能なはずです。
残念ですが、正常に動作しないと説明している「具体的な設定・作成」の状態が不明なので、改善点の指摘が出来ません。
ご自身が説明している内容(=漠然)を読む限り、問題点はピンポイントな部分だけの気がしますが、ボリュームのある実際の状態を確認できないと、その点の指摘は困難だと考えます。
この回答への補足
ご指摘ありがとうございます。
リレーションですが、
T2社員NO1⇔T1社員NO
T2社員NO2⇔T1_2社員NO
T2社員NO3⇔T1_3社員NO
T2社員NO4⇔T1_4社員NO
となっています。やはりおかしいでしょうか。
クエリで項目を選択する際、
日付(T2) 面談者氏名(T2) 面談者企業名(T2) 社員NO1(T1)(非表示) 社員NO1の所属(T1) 社員NO1の氏名(T1) 社員NO2(T1)(非表示) 社員NO2の所属(T1) 社員NO2の氏名(T1)・・・(社員NO3、4と続けて)
このように作成すると、すべて表示されません。
日付(T2) 面談者氏名(T2) 面談者企業名(T2) 社員NO1(T2) 社員NO2(T2) 社員NO3(T2) 社員NO4(T2) 所属(T1) 氏名(T1)
とすると社員NO1
社員NO1のデータの所属と氏名だけ表示されます。
これでは思い通りのものは作成できないですか?
何か良いアドバイスをくださいませんか?
すみませんがよろしくお願い致します。
No.1
- 回答日時:
T2の作り方が間違ってます。
(T2)テーブル2(面談データ)
NO オートナンバー
社員NO 数値型
日付 日付/時刻型
面談者氏名 テキスト型
面談者企業名 テキスト型
として、誰の面談であるかは社員NO(T2)で管理。
T1のサブフォームにT2(社員NOで連結)。レポートも同様で。
余談でサブフォームのフィールドをコンボボックスにして、データソースに列数3、連結列3、列幅0;0;2cmとすれば
社員NO(T2)の入力を数値ではなく名前で入力できるようにもなります(テーブルに入るデータは数値)。
この回答への補足
ありがとうございます。
作成してみました。
1つの面談に対して社員が1~4人担当をするという作り方をしたいです。
私の説明不足です。すみません。
良いアドバイスがありましたらよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
- その他(IT・Webサービス) webで名刺作成したいと考えてます。IDとパスワードを入れると、自社の社員一覧が表示され、役職や所属 1 2023/08/05 23:50
- その他(Microsoft Office) Excelの表記ゆれについて <状況詳細> 7000人を対象とした一覧表があり、それぞれが各支社やチ 2 2023/06/02 15:08
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
Accessでのレコード存在チェック
-
条件をつけて日付の古い行を抜...
-
【SQL】existsでの商演算
-
アクセスで「空き番」の確認
-
Recordset.FindFirstについて
-
SQL文について
-
Access:抽出して、色をつけたい。
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
select insertで複数テーブルか...
-
カレントレコードが無い事を判...
-
Excelでセルの書式設定を使用し...
-
Date型にNULLをセットしたい V...
-
データセットのレコード更新が...
-
select句副問い合わせ 値の個...
-
SQL文で右から1文字だけ削除す...
-
ADO VBA 実行時エラー3021
-
SELECTの結果で同一行を複数回...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
Accessでのレコード存在チェック
-
最新の日付とその金額をクエリ...
-
access 自動採番 年が変わる...
-
[Access]異なるレコード間の文...
-
【アクセスVBA】テーブルにフィ...
-
vba 直前の操作はキャンセルさ...
-
条件をつけて日付の古い行を抜...
-
Accessで日付が変わると番号が...
-
質問です。 下記のテーブルとデ...
-
Recordset.FindFirstについて
-
Access 文字+年ごとの自動採番
-
アクセスで「空き番」の確認
-
Accessの色番号について
-
access2003で学籍番号から生徒...
-
Access:抽出して、色をつけたい。
-
【Access】選択クエリのグルー...
-
access 自動採番 「10-AA-000...
-
電話番号の局番と住所の検索に...
-
sqlで質問です。 Aテーブルの登...
おすすめ情報