Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Access 2013)
メインフォームの常時最大化
投稿日時: 17/02/25 10:21:15
投稿者: yamasho

お世話になります。
 
Accessファイルを開くと
メインフォームが開くようになっています。
 
メインフォームのアクティブ時に
DoCmd.Maximize
を実行しています。
 
メインフォームのコマンドボタンを押すと、
各フォームが開くようになっています。
 
各フォームは
 
自動サイズ修正→いいえ
境界線スタイル→ダイアログ
ポップアップ→いいえ
作業ウィンドウ固定→はい
 
になっていて、アクティブ時に
 
DoCmd.Restore
DoCmd.MoveSize 1000, 1000, 11 * 567, 7 * 567
 
などのようにサイズを変更しています。
 
しかし別のフォームを開いたときに、
そのフォームの陰でメインフォームも
大きさが変わってしまいます。
別のフォームを閉じると最大化になります。
 
メインフォームは常時最大化したいのですが、
どのようにすればいいでしょうか?
 

回答
投稿日時: 17/02/25 11:07:54
投稿者: hatena
投稿者のウェブサイトに移動

Accessの仕様として、アプリ内の複数の子ウィンドウは同列の扱いですので、
最大化のウィンドウと、通常のウィンドウは共存できません。
 
DoCmd.Restore をするとすべての子ウィンドウの最大化は解除されます。
 
「ポップアップ」を「はい」にすると、子ウィンドウではなく独立のウィンドウになりますので、
ポップアップウィンドウはサイズ指定できて、メインフォームは最大化のままにできます。

投稿日時: 17/03/02 12:37:00
投稿者: yamasho

お世話になります。
 
共存できないということで理解しました。
ポップアップですが、子フォームからレポートを
プレビューするときがあります。
 
子フォームのポップアップが「はい」ですと、
レポートもポップアップを「はい」にしないと、
隠れてしまいます。
 
その場合、印刷するときやPDF変換するときは
右クリックから選ばなくてはいけません。
 
ユーザーからの要望で右クリックは使いたくない、
ということで、できればポップアップは使いたくありません。
 
他にこんな方法あります、
というときはアドバイスお願い致します。
 
例えばディスプレイの解像度に合わせて、
メインフォームを最大化に近い大きさまで表示させるとか。
 
 

回答
投稿日時: 17/03/02 14:24:40
投稿者: hatena
投稿者のウェブサイトに移動

いろいろな方法が考えられます。
いくつか例示してみます。
 
1.
子フォームはポップアップにしておいて、
レポートをプレビューする時に、子フォームを非表示にする。
レポートを閉じるときに、子フォームを再表示する。
 
2. yamashoさん自身の案
メインフォームをを最大化に近い大きさで表示させるというのでもいいでしょう。
その場合、「境界線スタイル」を「なし」にしておくといいでしょう。
 
3.
レポートはポップアップにしておいて、
下記で紹介している方法でプレビュー自体にボタンを付加する。
 
印刷プレビューに[印刷][閉じる]ボタンを付加する関数−改良版 - hatena chips
http://hatenachips.blog34.fc2.com/blog-entry-404.html
 
上記では [印刷] [閉じる] ボタンだけですが、希望に応じて、PDF変換などのボタンも配置できます。
 

投稿日時: 17/04/28 08:00:12
投稿者: yamasho

お世話になります。
 
とりあえず「2」の方法で解決しました。
「3」については勉強中です。
 
ありがとうございました。