リンク親フィールドが空のときにサブフォームのレコードをすべて表示する

 サブフォームのリンク親フィールドの値が空(Null)であるときにレコードを絞り込ませず、すべて表示させる方法についてです。
 結論を先に書きますとサブフォームのプロパティ「空のマスターのフィルター」を「いいえ」にします。

f:id:accs2014:20180127123344p:plain:right:w400

 実例を見てみます。
 レコードソースとしてこのようなテーブルを用いるものとします。


f:id:accs2014:20180127123338p:plain:right:w600

 このテーブルをレコードソースとしてサブフォームを作り、メインフォーム(レコードソースのない非連結フォーム)に貼り付けます。
 そして、抽出用のテキストボックス(名前プロパティは「所属抽出」)を置き、サブフォームのリンク親フィールド、リンク子フィールドをそれぞれ「所属抽出」「所属」とします。


f:id:accs2014:20180127123335p:plain:right:w400

 これにより、リンク親フィールドとなったテキストボックスの値に基づき、サブフォームのレコードが抽出されます。
 このようにメインフォームとサブフォームにより値の抽出ができます。なかなか便利で、フィルタの設定よりも簡単に済む場合も多いと思います。


f:id:accs2014:20180127123330p:plain:right:w400

 ところで、このテキストボックスが空(Null)であるとき、サブフォームには何も表示されません。
 ここで、抽出条件を指定していないのだからむしろすべてのレコードを表示したい、というケースがあるかと思います。しかし、先ほどのリンク親フィールド、リンク子フィールドの各プロパティをいじってもうまくいきません。


f:id:accs2014:20180127123327p:plain:right:w600

 そこでサブフォームのプロパティをよく見ますと「空のマスターのフィルター」というものがあります。デフォルトでは「はい」ですが、これを「いいえ」に変えます。


f:id:accs2014:20180127123445p:plain:right:w400

 これにより、テキストボックスが空のときにすべてのレコードが表示されます。