#252 サブデータシートのすべて展開/折りたたみ フォーム、VBA

フォームのサブフォームコントロールの"ソースオブジェクト"プロパティに、サブデータシートが設定されているテーブルやクエリを指定すると、フォーム上でもサブデータシートを表示させることができます。

ここでは、Accessのメニューを使わず、コマンドボタンのクリック一発で、サブデータシートの"すべて展開"、"すべて折りたたみ"を実行させる方法を紹介します。

  1. まず、単票形式のメインフォームを作成します。

  2. サブフォームコントロールを配置し、その名前を例として"sfrm購入明細_sub"とします。

  3. サブフォームコントロールの"ソースオブジェクト"プロパティを設定します。ここでは、他のフォームではなく、サブデータシートが設定されているテーブルやクエリを直接指定します。

  4. メインフォームに[すべて展開]と[すべて折りたたみ]の2つのコマンドボタンを配置します。ここではそれぞれの名前を"cmdSubExpand"、"cmdSubCollapse"としました。

  5. それらのクリック時イベントプロシージャを次のようにします。
    Private Sub cmdSubExpand_Click()
    '[すべて展開]ボタンクリック時

      '対象となるサブフォームにフォーカス移動
      Me!sfrm購入明細_sub.SetFocus
      'すべて展開コマンドを実行
      DoCmd.RunCommand acCmdSubdatasheetExpandAll

    End Sub

    Private Sub cmdSubCollapse_Click()
    '[すべて折りたたみ]ボタンクリック時

      '対象となるサブフォームにフォーカス移動
      Me!sfrm購入明細_sub.SetFocus
      'メインデータシートの任意のコントロールにフォーカスを戻す
      Me!sfrm購入明細_sub!伝票番号.SetFocus
      'すべて折りたたみコマンドを実行
      DoCmd.RunCommand acCmdSubdatasheetCollapseAll

    End Sub
【実行結果】
すべて折りたたんだ状態すべて展開した状態
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved