- ベストアンサー
サブフォームの表示の種類をVBAで操作したい
こんばんは。 アクセスのフォームの中にサブフォームを入れていて コマンドボタンを押すたびに そのサブフォームを フォームビューか、 データシートビューか、 ピボットテーブルビューかに切り替えたいのですが VBAで可能でしょうか? 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> VBAで可能でしょうか? サブフォームのCurrentViewで現在のビューを確認し、それに応じて切り替える、 ということになるかと思います。 (CurrentViewプロパティは参照専用のため、切り替えにはコマンドを使用) 具体的には以下の通り: (コマンドボタン名を「表示切替」(→親フォームに設置)、サブフォーム名を「SF」 とした場合) Private Sub 表示切替_Click() '表示を切り替えるサブフォームに移動 '(これがないと、実際の切り替え操作時にエラーが発生) SF.SetFocus 'サブフォームの現在のビューに合わせて、切り替えるビューを指定 Select Case SF.Form.CurrentView Case 1 'フォームビューの場合 → データシートビューに切替 DoCmd.RunCommand acCmdSubformDatasheetView Case 2 'データシートビューの場合 → ピボットテーブルに切替 DoCmd.RunCommand acCmdSubformPivotTableView Case Else '上記以外の場合 → フォームビューに切替 DoCmd.RunCommand acCmdSubformFormView End Select 'クリックしたコマンドボタンにフォーカスを戻す(なくても可) 表示切替.SetFocus End Sub なお、ピボットグラフにも切り替える場合は、以下のようにします: Private Sub 表示切替_Click() SF.SetFocus Select Case SF.Form.CurrentView Case 1 'フォームビューの場合 → データシートビューに切替 DoCmd.RunCommand acCmdSubformDatasheetView Case 2 'データシートビューの場合 → ピボットテーブルに切替 DoCmd.RunCommand acCmdSubformPivotTableView Case 3 'ピボットテーブルの場合 → ピボットグラフに切替 DoCmd.RunCommand acCmdSubformPivotChartView Case Else '上記以外の場合 → フォームビューに切替 DoCmd.RunCommand acCmdSubformFormView End Select 表示切替.SetFocus End Sub
お礼
ありがとうございます!!!