Microsoft Access 掲示板

開いているフォームの状態を取得する。

4 コメント
views
4 フォロー

いつもお世話になっております。

開いているACCESSのフォームが、ポップアップかダイアログで開いているかなど判定したいのですが
方法はございますでしょうか?

form.PopUpではプロパティーの値だけで意味がない事が解りました。

チョコ
作成: 2023/01/26 (木) 02:22:33
通報 ...
1
hiroton 2023/01/26 (木) 08:45:06 b2693@f966d

意味がないとは?

ポップアップはポップアップです。ACCESS本体のウィンドウにとらわれず独立したウィンドウとして操作できるようにするプロパティです

ダイアログとはなんでしょうか?
境界線スタイルの設定ならForm.BorderStyle プロパティ (Access)で確認・設定できます

もっと一般的な「ダイアログ(そのダイアログを閉じないと下部ウィンドウが触れないようなもの)」であれば作業ウィンドウ固定(Form.Modal プロパティ (Access))プロパティを使って実装できます

これらは互いに依存するものではないのでそれぞれのプロパティをチェックして必要な判定をしてください

2
チョコ 2023/01/26 (木) 23:59:36 7a4e5@dab18

説明不足で申し訳ありません。

ダイアログ(フォーム)は、ポップアップで開いて、そのフォームを閉じるまで他のフォームなどに触れない
フォームです。

フォームAのプロパティーでポップアップを「いいえ」と設定したとします
フォームBからdocmd.openform で呼び出すときに、引数で「acDialog」とするとポップアップで開きます。
form.PopUpの値は、フォームAで設定した「値」しか取得出来ないので、
フォームが「acDialog」で開いていても、form.PopUpの値は「いいえ」になってしまうので
開いている状態を調べるには意味がないと書いてしまいました。

実際に開いている状態(通常か、ポップアップか等)を知りたいのですが可能でしょうか?
フォームを呼び出して開くときに、変数などに状態を保存しておく方法もアルのでしょうが‥

3
hiroton 2023/01/27 (金) 08:59:29 c4746@f966d

やってみたらたしかにプロパティで取れないですね

AcWindowMode 列挙 (Access)

acDialog 3 フォームまたはレポートのモーダル プロパティと PopUp プロパティは[はい]に設定 されます。

こうあるのでなにがしかの制御はされてるんでしょうけど、回りくどい方法取らざるを得ない(標準機能にない方法)よりも

フォームを呼び出して開くときに、変数などに状態を保存しておく方法もアルのでしょうが‥

をサクッと実装してしまったほうが楽そうです
Form.OpenArgs プロパティ (Access)

4
チョコ 2023/02/01 (水) 00:21:20 7a4e5@dab18

返信ありがとうございます。
hirotonさんのおっしゃるとおりですね。
その方法が一番らくですよね。

教えて頂きましてありがとうございました。