| サブフォームを切替える | |
| サブフォームの項目数が多い場合やサブフォームを種類別に分けたいときにこの「サブフォームの切替え」は便利です。 | ![]() |
| 「名簿」テーブルをメインにしたフォームに「項目」「項目2」とそれぞれのテーブルからフォームを作り、それぞれ「名簿」フォームのサブフォームとして必要に応じて切り替えるようにします。 はじめに、「項目」フォームを作成したら、「名簿フォームから」サブフォームを作成し、「リンク子フィールド」「リンク親フィールド」それぞれを「番号」でつなぎます。 ここではサブフォームのプロパティでサブフォームの名前をわかりやすく「sub」としておきます。 |
|
| 次にツールボックスからオプショングループを選択し、切替用のトグルボタンを設置します。 名前を「項目1」「項目2」としてオプション値はそれぞれ「1」「2」となっています。 オプショングループには「フレーム5」という名前が自動的につきました。この「フレーム5」の「クリック時」のイベントプロシージャを開きます。 |
![]() |
| Private Sub フレーム5_Click() End Sub というのができますね。 ここでその間に次のように記述します。 Private Sub フレーム5_Click() Select Case フレーム5 Case Is = 1 Me!sub.SourceObject = "項目" Me!sub.LinkChildFields = "番号" Me!sub.LinkMasterFields = "番号" Case Is = 2 Me!sub.SourceObject = "項目2" Me!sub.LinkChildFields = "番号" Me!sub.LinkMasterFields = "番号" End Select End Sub |
![]() |
| Select Case構文は前にも紹介していますが、それぞれの条件によって何をさせるかを選択します。選択肢が多い場合に用います。 |
![]() |
| 「フレーム5」のオプション値「1」だったら Me=自分の「sub」=サブフォーム名のソースオブジェクトを"項目"にする。 「リンク子フィールド」「リンク親フィールド」をそれぞれ"番号"にする。 という設定で、オプション値「2」だったら、 "項目2"のサブフォームに移ります。 |
|
| この場合、サブフォームのプロパティで既定値を「1」に設定してありますので「名簿」フォームを最初に開いたときは「項目」から開くようにしてあります。 | |