2016-08-25 5 views
0

私はPK/FKを使用して他の多くのテーブルにリンクされているTable1を持っています。今度は、Table1のすべてのレコードのエクスポートを作成し、Table1の各レコードに対して、Excelの他のテーブルのすべての値を表示し、FKのフィールドにはFKを指定しません。問題はここにあります - すべてのフィールドがフルフィルである(FKを含む)フィールドと、フィールドがないフィールドがあるTable1のレコードがあります。したがって、他のテーブルにリンクされていないFKフィールドは空白になり、クエリはリンクされたレコードのみに表示されます。すべてのリンクテーブルから1つのテーブルに対してExcelにエクスポート

私はAccessにすべてのデータをExcelスプレッドシートの1つの行に表示するために何ができるのですか?

EDIT:

マイテーブル(表従業員がテーブルアプリケーションで4回リンクされている - FK_fieldsが、アクセスが1つだけの関係を示している)

enter image description here

私の出力は、テーブルからすべてのこれらのフィールドを有していなければなりません1行のAPPS、ただし、FK_fields値の代わりにすべてのリンクテーブルフィールド。 1行の例(希望する出力順序の後にAPPS-SUPPLIERS-EMPLOYEES-VERSION-HARDWARE-APPSハードウェア):

1234 |アクセス|プログラム|はい| Microsoft | 14th Street、LA | Mike Brown | David Fox | Johnロング| Sally Sugar | 25.08.2016 | Ver.1 | 1stバージョン| 25.08.2016(バージョン日付)| PC |デスクトップコンピュータ| 25.08.2016(ハードウェアの日付)|使用に有効| 25.08.2016(APPS-HARDWAREの記録日)

+0

クエリビルダを使用してクエリを作成またはSQLを書いていますか? –

+0

私はクエリビルダーで両方をやっています。しかし、これまでのところ、すべてのリンクテーブルで一致するTable1のレコードのみを表示することができました。 – LuckyLuke82

+1

テーブル1とテーブル2の間の関係線を右クリックし、 "Join Properties"を選択すると、Table1に一致するレコードがない場合でも、Table1のすべてのレコードを選択できます。 –

答えて

2

テーブル結合、左および/または右の結合を調べて使用する必要があります。左の結合では、右側のテーブルから一致するレコードがなくても、左から書かれたテーブルのすべてのデータが表示されます。簡単な例

SELECT table1.column1, table2.column2... 
FROM table1 
LEFT JOIN table2 
ON table1.common_field = table2.common_field; 

欠落しているデータにはNULLが入ります。

SQL - LEFT JOINS


あなたがアクセスのクエリのデザインビューを使用している場合は、SQL文の作成を支援するために、それを活用することができます。メインテーブルを左に置き、結合されたテーブルを右に振ってみましょう。結合線をダブルクリックして、左または右の結合に変更します。それがきちんと表示するために、いくつかの書式設定を必要とするがあなたは、このようなものになってしまいます

SELECT 
    tblStaff.FirstName, tblOffices.OfficeName, tblDepts.Department, 
    tblHolidays.FirstDate 
FROM (tblOffices 
RIGHT JOIN (tblDepts 
RIGHT JOIN tblStaff 
    ON tblDepts.DeptID = tblStaff.Department) 
    ON tblOffices.OfficeID = tblStaff.OfficeID) 
LEFT JOIN tblHolidays 
    ON tblStaff.StaffID = tblHolidays.StaffID; 

enter image description here

+0

ドキュメントリンク、[結合の違い](http://stackoverflow.com/documentation/sql/261/join/14930/differences-between-sql-joins#t=201608251203567842533)です。 –

+0

Andyさん、左ジョインについて何か知っていますが、1つのテーブルに対して複数のテーブルを左ジョインする方法はありますか? – LuckyLuke82

+0

私は私の答えに追加しました。 –

関連する問題