こんばんは。
アクセスのフォームの中にサブフォームを入れていて
コマンドボタンを押すたびに
そのサブフォームを
フォームビューか、
データシートビューか、
ピボットテーブルビューかに切り替えたいのですが
VBAで可能でしょうか?

宜しくお願い致します。

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございます!!!

お礼日時:2009/05/23 11:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング