- ベストアンサー
AccessでHTMLのフレームの様にフォームを作りたい
- Access2007を使ってフレームのようなフォームを作成する方法が知りたい
- HTMLでのフレームページのように左側にボタン群を配置し、右側に書類やテーブルを表示するフォームをAccessで作りたい
- 既存の方法ではボタン群とフォームを複数作成し、行き来させることはできるが、レポートやテーブルを右側に表示することはできない。VBAの使い方もまだ理解できていない
- みんなの回答 (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」といった形で指定する必要があります。 具体的な形は、フォームのデザインビューにて、サブフォームのプロパティシートの 『ソース オブジェクト』欄のリストを参照下さい。 (その場合もダブルクォートで囲むことをお忘れなく・・・)
お礼
ご回答有難う御座いました。ご指導頂きました通りに行って、出来てからご報告をと思い、お返事が遅くなってしまいました。 サブフォームの本来の作り方は大変参考になりました。有難う御座いました。 VBA、マクロについては、勉強してゆけば出来る様になるかと、参考書と首っ引きでで挑戦しておりますが、未だ出来ず、自分が何も解っていない為、どこが解らないのかも解らないもので、ご質問させて頂くことも出来ません。 進展御座いましたら、補足欄に追ってご質問させて頂こうと存じます。