プロが教える店舗&オフィスのセキュリティ対策術

フォーム上でサブフォームの帳票フォームとデータシートをトグルボタンかコマンドボタンで切り替えることはできないでしょうか?

現在、抽出したデータをサブフォーム(帳票フォーム)に表示させており、そのデータにある金額の合計を表示させています。
帳票フォームは見やすいのですが、データシートですと抽出したデータの一部をコピーしEXCELで使用したりできます。見やすさを諦めてデータシートに変更すると抽出したデータの合計が計算できません。
できれば、帳票フォームとデータシートどちらも使用したいのですが、いちいちデザインからサブフォームのプロパティで規定のビューから変更するのが面倒です。
上記にありますようにトグルボタンかコマンドボタンで切り替えることができれば便利なのですが・・・。

良い方法がありましたらお知恵を貸して下さい

A 回答 (4件)

Forms![メインフォーム名]![サブフォーム名].SetFocus


DoCmd.GoToControl "サブフォームのコントロール名"
DoCmd.DoMenuItem 0, 2, 3, True

の、サブフォームのコントロール名は、サブフォーム内の
コントロール銘でしたらなんでもいいです。
テキストボックスとかの名前でOKです。

【例】

Forms![f_受付メイン基本情報]![f_受付サブ少詳細内容].SetFocus
DoCmd.GoToControl "受付ID_tbx"
DoCmd.DoMenuItem 0, 2, 3, True
    • good
    • 0
この回答へのお礼

ありがとうございます!
上手く行きました。コードの意味がよく分からないのですが(^^;、とにかく嬉しいです。
これですごく便利になりました!
本当にありがとうございます。

お礼日時:2004/01/19 09:49

またまたすみません。


#2はメインフォーム(親フォーム)の場合でした。

サブフォームの場合は以下です。

まず、サブフォームの付近にコマンドボタンを配置します。

クリックイベントなどに以下のように書きます。

サブフォームをフォームビューからデータシートビューに切り替える方法

Forms![メインフォーム名]![サブフォーム名].SetFocus
DoCmd.GoToControl "サブフォームのコントロール名"
DoCmd.DoMenuItem 0, 2, 3, True



この3行のコードで、フォームビューからデータシートビューへの切り替えや、その逆ができます。
つまり、初回に押すとデータシートに、2回目はもとにもどる・・・という具合です。

※・・・サブフォーム名に注意が必要です。
これは純然たるサブフォームの名前ではなく、サブフォームのプロパティの「埋め込みオブジェクト」の名前です。
サブフォームは埋め込みオブジェクトの上に純然たるフォームがのっかっているイメージです。
その証拠に、サブフォームをウィザードで作成する途中にキャンセルすると「埋め込みオブジェクト」が残ります。


あと、テストしましたところ、コード3行目の
DoCmd.DoMenuItem 0, 2, 3, True

DoCmd.RunCommand acCmdSubformDatasheet
と書いても使えるみたいです。

では、失礼しました~。
    • good
    • 0

#1です。



すみません。間違えたような気がします。

フォームビューからデータシートビューへ切替
DoCmd.RunCommand acCmdDatasheetView


データシートビューからフォームビューへ切替
DoCmd.RunCommand acCmdFormView


検証してないのですみませんが、多分こっちで行けると思うんですが・・・
また、違ってたらごめんなさい。
    • good
    • 0

DoCmd.OpenForm "フォーム名", acFormDS



DoCmd.OpenForm "フォーム名", acNormal

などで切り替えればいいのではないでしょうか?

コマンドボタンだと、データシートからもとに戻るのが面倒なので、サブフォームの最初のテキストボックスのダブルクリックイベントなどに書くとらくちんと言えばらくちんです。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています