自テーブルをサブデータシートにして自動展開するとどうなるか

(※Tipsどころか時間の無駄ですのでご了承ください)

 さて、あるフォームのサブフォームとしてそのフォーム自身を設定することはできません。無限ループになってしまうからです。サブレポートについても同様です。

f:id:accs2014:20170808225356p:plain:right:w500

 しかし、サブデータシートとしてそのテーブル自身を設定することは出来ます。
 この例では社員テーブルのサブデータシートとして社員テーブル自身を設定しました。親フィールドと子フィールドはどちらも社員番号(主キー)です。
 これをデータシートビューで開くとどうなるでしょうか。


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

 答えはこのようになります。サブデータシートを開いても開いても同じテーブルの同じレコードが表示されます。
 実用性は全くありませんが、サブフォームの例と違ってサブデータシートは(メインの)テーブルの一部として表示されるものではないので、特に異状に陥るわけでもありません。


f:id:accs2014:20170808225351p:plain:right:w500

 さて、テーブルには「サブデータシートの展開」というプロパティもあります。これはテーブルの+マークをクリックしなくとも、サブデータシートに存在する関連レコードをすべて自動的に表示するというプロパティです。
 このプロパティはテーブルがサブデータシートとして開かれた場合にも機能します。ということは、このプロパティを「はい」にしてデータシートビューで開いたとたん、サブデータシート、そのサブデータシート・・・として同じテーブルが次々と開いていくことが予想されます。異常終了してもおかしくないような気もしますが果たしてどうなるでしょうか。
 その結果は・・・





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

 こうなります。
 サブデータシートは1段階だけ開き、そこでストップするのです。

 以上Access豆知識でした;-o-)