• ベストアンサー

サブフォームの切り替え方を教えてください

ACCESS97のVBAでアプリケーションを作成しています。 その中でメインメニューのボタンを押した時に新しいフォームとその中のサブフォームが表示されるような処理を行っているのですが、基本的にフォームは同じのを使いまわし、その中のサブフォームをイベントによって切り替えたいのです(例えばメニュー画面でAのボタンをクリックしたら新しいフォームとその中のAAのサブフォームが、メニューのBのボタンをクリックしたらBBのサブフォームが表示するなど)。どなたか良い方法を知っていましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#1296
noname#1296
回答No.2

mnabeさんの回答に補足という形になりますが 最初は全部のサブフォームを非表示にしておいて (デフォルトで表示させたいフォームがある時は そのサブフォームを表示して) フォームのボタンのクリック時に サブフォームAA.Visible = True サブフォームBB.Visible = False サブフォームCC.Visible = False サブフォームDD.Visible = False ・ ・ ・ という風に表示させたいサブフォームのみ表示 にして他を非表示にするっていうやり方です。 サブフォームAAの部分は貼り付けたサブフォー ムの名前ではなくサブフォームコントロール名 (通常同じですが)にして下さい。 あとAccess97だとタブコントロールが使えます ので、ご希望の処理はこちらでも可能かと思い ます。これだとタブ毎にサブフォームを配置 するだけで、あとはタブのラベル部分をクリック するだけで切り替えられますし。

その他の回答 (2)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

サブフォームコントロールに表示されるフォームを切り替えるコードの例です。 Private Sub コマンド1_Click()  Select Case MsgBox("フォームを選択 OK→フォーム1 Cancel→フォーム2", vbOKCancel)   Case vbOK    Me.サブフォーム.SourceObject = "フォーム1"    Me.サブフォーム.LinkChildFields = "ID"    Me.サブフォーム.LinkMasterFields = "ID"     Case vbCancel    Me.サブフォーム.SourceObject = "フォーム2" End Select End Sub

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

サブフォームの数が少なければ...  最初から全てのサブフォームを表示してしまっていて、ボタンクリックイベントで、サブフォームの表示を切り替えるのが簡単ですよ。  少々遅いのが難点ですが...ね。

関連するQ&A