電子書籍の厳選無料作品が豊富!

 昨日からAccess2007でAccessを始めたばかりの初心者です。宜しくご指導願います。

 HTMLで言うフレームページの様に、左にボタン群、右に書類を作成するフォームや、テーブル、レポートを表示する、その様な形にしたいと考えています。

 現在は、ボタン群のフォームに書類作成フォームをドラッグアンドドロップしてサブフォーム(?)の状態にして、大きさを整える事で強引に作っています。

 この方法では、ボタン群のフォームを必要数分作って、それどうしをボタンで行き来させる事になりますが、それは良いとしても、レポートやテーブルはこの方法では右側に表示させる事が出来ませんでした。

 以上の様な事から、解決方法をご指導賜りたく、お願い申し上げます。尚、VBAの使い方についてはまだ理解出来ていません。

A 回答 (1件)

> レポートやテーブルはこの方法では右側に表示させる事が出来ませんでした。



確かに、フォームを元にしたサブフォームは、ドラッグ&ドロップで作成できますが、
通常は『デザイン』リボンの『コントロール』内にある「サブフォーム/サブレポート」
をクリックした後、フォーム内の設置したい位置をクリックします。
(ここはドラッグ&ドロップではなく、リボン内のボタンをクリック後、フォーム内を
 再クリック、という操作になるので、念のため)
→<添付画像の丸で囲った部分>

なお、上記の方法で作成した場合は、サブフォームの枠が設置されただけです。
実際に表示させるフォームやテーブル、レポートは、プロパティシートの『データ』
タブにある「ソース オブジェクト」で指定します。
→<添付画像で下線を引いた部分>

ここでフォームを指定すると、だいたい「既存のフォームのドラッグ&ドロップ」で
作成したものと同様のサブフォームが作れることになります。
(逆にいえば、ドラッグ&ドロップで作成したサブフォームの「ソース オブジェクト」を
 書き換えれば、レポートを元にしたサブフォームも作れる、ということです)

   ~~~~~~~~~~~~~~~~~~~~~~~~~~

で、ボタンのクリックによるサブフォームの表示の切替は、マクロやVBAで「ソース
オブジェクト」を変更することで行います。
(この場合、実際に式に使用するのは「SourceObject」になります)

【VBAの場合】
 親フォーム上のコマンドボタン名が「コマンド1」で、サブフォームのコントロールとして
 の名前が「サブ1」、「サブ1」で表示させるフォームの名前が「フォーム2」の場合:

Private Sub コマンド1_Click()

  Me!サブ1.SourceObject = "フォーム2"

End Sub

【マクロの場合】
 『アクション』 : 「値の代入」
 (マクロのデザインビューで、『デザイン』リボンの『表示/非表示』内の「すべての
  アクションを表示」をオン(オレンジ表示)にしないと表示されないので注意)
  ・『アイテム』 : Forms!フォーム1!サブ1.SourceObject
    (親フォーム名が「フォーム1」、サブフォーム名が「サブ1」の場合)
  ・『式』 : "フォーム2"

※フォームではなくテーブル等を使用する場合は、例えば「テーブル1」を表示する
  には「テーブル.テーブル1」といった形で指定する必要があります。
  具体的な形は、フォームのデザインビューにて、サブフォームのプロパティシートの
  『ソース オブジェクト』欄のリストを参照下さい。
 (その場合もダブルクォートで囲むことをお忘れなく・・・)
「AccessでHTMLのフレームの様にフ」の回答画像1
    • good
    • 0
この回答へのお礼

 ご回答有難う御座いました。ご指導頂きました通りに行って、出来てからご報告をと思い、お返事が遅くなってしまいました。

 サブフォームの本来の作り方は大変参考になりました。有難う御座いました。

 VBA、マクロについては、勉強してゆけば出来る様になるかと、参考書と首っ引きでで挑戦しておりますが、未だ出来ず、自分が何も解っていない為、どこが解らないのかも解らないもので、ご質問させて頂くことも出来ません。

 進展御座いましたら、補足欄に追ってご質問させて頂こうと存じます。

お礼日時:2009/10/05 11:11

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