#562 | データシートフォームの列の表示/非表示を個別に切り替えるには? | フォーム、VBA | |
データシート形式で表示されているサブフォーム内の、特定の列の表示/非表示を交互に切り替えるVBAのプログラム例です。 Accessでは、「列の再表示」ダイアログや列名の右クリックのショートカットメニューを使ってノンプログラムでデータシートの列の表示/非表示を切り替えることもできますが、このような処理を行うことによって、独自の表示切替のインタフェースを作ることができます。 まず例として、次のようなメイン/サブフォーム形式のフォームを用意します。 メインフォーム側には「表示切替」というコンボボックスが配置されていますが、ここではプロパティシート上で次のような設定がなされています。
次に、[cbo表示切替]コンボボックスの更新後処理(AfterUpdate)イベントプロシージャを次のようにします。 Private Sub cbo表示切替_AfterUpdate() Dim ctl As Control 'コンボボックスで指定されたコントロールを設定 Set ctl = Me!frm売上明細_sub.Controls(Me!cbo表示切替) 'そのコントロールの列の表示/非表示を逆転する ctl.ColumnHidden = Not ctl.ColumnHidden End Sub それでは、動作を確認してみます。 最初の状態 コンボボックスから「商品名」を選択します データシートから「商品名」列が消えます コンボボックスから「数量」を選択します データシートから「数量」列が消えます 再度「商品名」を選択します 「商品名」列が再表示されます 参考Tips:「#247 列の再表示ダイアログをVBAから表示させる方法」 |
|||
|
Copyright © T'sWare All rights reserved |