Accessテクニックのホームへ戻る

■ 社員テーブルから上司と部下の氏名を表示する (2000,2002,2003,2007)

 

社員テーブルに上司IDのフィールドを追加して、上司→部下のように階層化するテーブルを作成します。

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkに新規データベースW040.mdbを作成します。

 

2. 社員テーブル作成

データベースウィンドウのオブジェクトから[テーブル]をクリックしたら右側の新規オブジェクトのショートカットから[デザインビューでテーブルを作成する]をダブルクリックします。テーブルのデザインビューが表示されたら、表に示すようなフィールドを追加します。

 

フィールド名社員IDのレコードセレクターをクリックして行を選択したら、ツールバーから主キーのアイコンをクリックします。ツールバーから上書き保存のアイコンをクリックして「tbl社員」の名称で保存します。

 

社員テーブルのフィールド構成

フィールド名

データ型

サイズ

社員ID

数値型

長整数型

氏名

テキスト型

40

肩書

テキスト型

30

上司ID

数値型

長整数型

 

社員テーブルのフィールド構成

 

3. サンプルデータ入力

ツールバーからデータシートビューのアイコンをクリックしたら、図に示すようなサンプルデータを入力します。フィールド上司IDには、上司の社員IDを入力します。データシートビューの閉じるボタンをクリックして、ウィンドウを閉じます。

 

社員テーブルにサンプルデータ入力

 

4. 上司と部下を同時に表示するクエリ作成

データベースウィンドウのオブジェクトから[クエリ]をクリックしたら右側の新規オブジェクトのショートカットから「デザインビューでクエリを作成する」をダブルクリックします。「テーブルの表示」ダイアログが表示されたら[テーブル]のタブから[tbl社員]をリックして選択します。[追加]ボタンを2回クリックしてクエリビューに追加したら、[閉じる]ボタンをクリックしてダイアログを閉じます。

 

tbl社員の上司IDをドラッグしたらtbl社員_1社員IDにドロップします。上司IDと社員IDに結合線が引かれます。

 

tbl社員とtbl社員_1を上司IDと社員IDで結合

 

tbl社員とtbl社員_1に引かれた結合線をダブルクリックします。「結合プロパティ」ダイアログが表示されたら、[tbl社員の全レコードとtbl社員_1の同じ結合フィールドのレコードだけを含める]のラジオボタンをクリックして選択します。[OK]ボタンをクリックしてダイアログを閉じます。

 

図「結合プロパティ」ダイアログから結合オプション[2]を選択

 

tbl社員_1[氏名]のフィールドをダブルクリックしてクエリグリッドにコピーします。クエリグリッドの抽出条件に「Is Not Null」を入力します。tbl社員の[氏名][社員ID]のフィールドをダブルクリックしてクエリグリッドにコピーします。社員ID並べ替えのドロップダウンリストから[昇順]を選択します。さらに、社員ID表示のチェックボックスをクリックしてチェックを外します。

 

上司と部下の氏名を表示するクエリ作成

 

クエリグリッドのtbl社員_1の氏名の上にマウスを移動してマウスの形状が↓に変化したら、クリックして氏名のフィールドを選択します。氏名の右ボタンをクリックして、ショートカットメニューから[プロパティ]を選択します。「フィールドプロパティ」ダイアログが表示されたら、標題に「上司」を入力します。ダイアログの閉じるボタンをクリックしてダイアログを閉じます。

 

氏名の「フィールドプロパティ」の標題に「上司」を設定

 

同様の手順で、tbl社員の氏名の「フィールドプロパティ」ダイアログを表示したら、標題に「部下」を入力してダイアログを閉じます。

 

ツールバーから上書き保存のアイコンをクリックしたら、「qry上司部下」の名称で保存します。

 

 

5. データシートビューに切り替え

ツールバーからデータシートビューのアイコンをクリックして、データシートビューに切り替えます。データシートビューに上司と部下の氏名が同時に表示されるのを確認したら、閉じるボタンをクリックしてデータシートビューを閉じます。

 

データシートビューに上司と部下の氏名を同時に表示

 

ダウンロード (040.lzh)