- ベストアンサー
アクセスのフォームサイズ変更について
アクセスのフォームサイズ変更がうまくいかず困っています。 まずフォームを3つ(メニューA, frmB, frmC)作成しました。メニューAからは、frmBとfrmCを開くことが出来ます。また、frmBからはfrmCを開くことができます。 ここで、frmBのサイズはform_OpenでDoCmd.Maximizeを使って最大表示しています。frmCのサイズは同じくform_OpenでDoCmd.Movesize 1500, 300, 11500, 8000としています。 メニューAからは、frmB, frmCともに正しいサイズ(frmBは最大、frmCは指定のサイズ)で開かれます。frmBからfrmCを開くと最大化されて表示されてしまいます。 なお、frmBのform_Open内の最大化のコマンドをけずるとfrmBからもfrmCを正しいサイズでfrmCを開くことが出来ます。frmBのサイズがそのままfrmCに継続されているような気がするのですが、なぜfrmCのform_Openを読んでくれないのでしょうか。デバッグしてみましたがもちろん、frmCのform_Openも読んでいます。 frmBを最大化したまたfrmCを正しいサイズで開くことは出来ないでしょうか。 どなたかアドバイスをお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Docmd.Maximizeは、一度実行されると、全てのフォーム に対して有効になってしまいます。 最大化したくないフォームのみ、ポップアップ設定して しまえば? ポップアップを有効にしたフォームについてはサイズが 固定されてしまい、最大化できなかったはず。
その他の回答 (4)
- skikichi
- ベストアンサー率65% (45/69)
frmBからfrmCを開くイベントに下記の記述をしてください。 DoCmd.Restore Docmd.OpenForm "frmC"
お礼
上記のコマンドを使って、各コマンドボタンにサイズを指定するコマンドを入れたらうまくいきました。ありがとうございます。
- O_cyan
- ベストアンサー率59% (745/1260)
frmCを開く時に DoCmd.OpenForm "frmC", acNormal, "", "", , acDialog で開けばサイズを固定して開けます。 ただacDialogで開くのでポップアップになり常に前面に表示されてしまいますが。
アクセスは長いこといじっていませんが(^^; >frmBのform_Open内の最大化のコマンドをけずるとfrmBからもfrmCを正しいサイズでfrmCを開くことが出来ます ということなので、frmBからfrmCを開く直前に、自分自身のサイズを変えるとどうなるのでしょうか?
- papayuka
- ベストアンサー率45% (1388/3066)
アクセスは詳しく無いですが、、、 Excelはありますよね? 複数ブックを開いて、最大化をした時、もう一方のブックがどうなっているか見て下さい。 MDI形式の子ウィンドウが全て最大化されるのは、Windowsの仕様なのでは?と思ってます。 確証は無いですけど、、、
お礼
なるほど、Maximizeは全てのフォームに適用されてしまうのですね。ポップアップを試しましたが、なぜかコマンドボタンを使用するとエラーが出てしまいます。