none
二つのフォームの画面切り替えを禁止するには RRS feed

  • 質問

  • いま、フォームのリストのチェックの入ったレコードを葉書印刷レポートでプレビュー表示する

     

    という作業を作成しています。

     

    その過程で、葉書印刷フォームが開き、リスト表示されているフォームはそのままの状態になる部分があります。

     

    リストの方は画面が縦約15センチ・横25cmのサイズで

    印刷のほうは5cm・10センチ位のサイズです。

    リストの印刷ボタンクリックで印刷フォームが開き、縦書きか横書きかを選びます。

    そのときに誤って、リストの方の画面にカーソルがある状態でクリックしてしまうと制御がリストのほうに移り、一番上の画面はリストフォームになってしまいます。

     

    あやまってリストフォームをクリックしてしまっても制御が移らなくてすむ方法を教えて下さい。

    2007年5月29日 1:58

回答

  •  フラグ さんからの引用
    docmd.open・・・でフォームを開いているのですが・・・。

    Access でしたか...

    であれば、

    Access VBA
    Call DoCmd.OpenForm("フォーム2", acNormal, WindowMode:=acDialog)

     
    と、acDialog モードで開けばモーダルで表示できます。

    2007年5月29日 6:34

すべての返信

  •  フラグ さんからの引用
    あやまってリストフォームをクリックしてしまっても制御が移らなくてすむ方法を教えて下さい。

    (前半に書かれた "Form の内容" はあまり関係がないような回答になってしまいますが)
    モーダル表示にすれば良いだけのお話ではないのでしょうか?
    2007年5月29日 2:52
  • 一時間くらいさまよったのですが、コードの作成方法がわかりません。

     

    docmd.open・・・

    でフォームを開いているのですが・・・。

    2007年5月29日 5:51
  •  フラグ さんからの引用
    docmd.open・・・でフォームを開いているのですが・・・。

    Access でしたか...

    であれば、

    Access VBA
    Call DoCmd.OpenForm("フォーム2", acNormal, WindowMode:=acDialog)

     
    と、acDialog モードで開けばモーダルで表示できます。

    2007年5月29日 6:34
  • この後レポートを開くことになるのですが、このままだと、レポート画面トップにはこないですけど、

    どうしたらいいですか?

     

    レポ―トオープン前にフォームを閉じるしかないのかしら。

    2007年5月29日 8:25
  •  フラグ さんからの引用
    この後レポートを開くことになるのですが、このままだと、レポート画面トップにはこないですけど、どうしたらいいですか?レポ―トオープン前にフォームを閉じるしかないのかしら。

    OpenReport メソッドでも acDialog モードが使えます。
    すでにモーダルになっている Form から呼び出せば Top に表示されるようになると思います。
    2007年5月29日 10:44
  •  じゃんぬねっと さんからの引用
     


    OpenReport メソッドでも acDialog モードが使えます。
    すでにモーダルになっている Form から呼び出せば Top に表示されるようになると思います。

     

     

    回答済みチェックを入れたあのコードがサンプルですよね?

    「WindouMode:」のところで対応してないという内容のメッセージがでるのですが・・・。

    2007年5月30日 0:06
  • どうも、フラグです。

    いつもありがとうございます。

     

    どうも、難しく考えすぎていたようです。

     

    フォームのプロパティーにある作業ウィンドウの固定を「はい」に設定

     

    でいいとのことでした。(職場の先輩からの情報です。)

     

    じゃんぬねっと様ご協力ありがとうございました。

    2007年5月30日 0:51
  • こんにちは、フラグさん。

     フラグ さんからの引用
    回答済みチェックを入れたあのコードがサンプルですよね?「WindouMode:」のところで対応してないという内容のメッセージがでるのですが・・・。

    どんなコーディングをし、どのようなメッセージが出たのでしょうか?
    私の方で念のため確認したところ何の問題もなく期待通りに動作しました。
    2007年5月30日 0:57
  • このメソッドはサポートしてませんだったかな。

    フォームは問題なかったのですがレポートプレビューが開かなかった。

     

    オプションプロパティで対応というレベルでよかったみたいなので今回のシステムではこのメソッドは使わないことにします。

    2007年5月30日 5:21
  •  フラグ さんからの引用
    このメソッドはサポートしてませんだったかな。

    開こうとしているものを誤っているだけではないでしょうか?

    Access VBA
    Call DoCmd.OpenReport("レポート1", acViewPreview, WindowMode:=acDialog)

     

    で、普通にプレビュー表示できました。
    2007年5月30日 5:37
  • じゃんぬねっと様が書いてくださった通りのコードを入れていました。

    最後のカンマ以降は同じだったのでそれをコピーしました。

    docmdの前にcallと入れ、レポート名の前に(、開く型のあとに貼り付け)としました。

     

    で、あのメッセージがでちゃったんです。

     

    いろいろ調査していただきありがとうございます。

     

    2007年5月30日 6:04