これは説明するのが少し難しいので、私にこのことを言わせてください。私は3つのテーブルを持っています。MS Accessで結合結果がnullの場合でもクエリ結果を返すにはどうすればよいですか?
ID P_FID A_FID PRIORITY
========================
1 1 2 1
2 1 1 2
:第三の両方のFIDのが含まれており、そのようにそれらに優先順位を付けることができます私の
ID NM
==============
1 Assignment A
2 Assignment B
:
ID NM
==============
1 Profile A
2 Profile B
秒が割り当てが含まれています。下記のように
一つは、プロファイルが含まれています
私の問題は、連続したフォームを介して3番目のテーブルにデータを入力しているため、エンドユーザーが優先度を入力する能力。基本的には、ユーザーが適切なプロファイルを選択できるようにするコンボボックスがあります。 3番目のテーブルにエントリがない場合、優先順位を入力できるようにすべての割り当てが表示されます。そのテーブルにすでにレコードがある場合、それらの値を取得して優先順位を更新する必要があります。
次のクエリは、3番目のテーブルが空である限り有効です。ユーザーが優先度を入力して別のプロファイルに切り替えると、選択したプロファイルでない限りレコードは返されません。
SELECT tblProfileForAssignments.PROFILE_FID,
tblAssignments.NM,
tblProfileForAssignments.PRIORITY
FROM tblAssignments
LEFT JOIN tblProfileForAssignments ON tblAssignments.ID = tblProfileForAssignments.ASSGNMNT_FID
WHERE (tblProfileForAssignments.PROFILE_FID = Forms!frmProfileAssignments!cmboProfile)
OR (tblProfileForAssignments.PROFILE_FID IS NULL);
はこれは、私が思うだろう組合を利用し、単一のクエリで行うことができ、または私はちょうどこれを理解するために、VBAに戻す必要がありますか?私が言ったように、それは3番目のテーブルが空であるか、彼らが選択した最初のプロファイルでのみ動作し、失敗した場合にのみ機能します。これは理にかなっていますか?サブクエリにそれを回す
恐ろしい!これはチャンピオンのように働いた。 – Munsterlander