• ベストアンサー

アクセスでモーダルモードでフォームを開く方法

アクセスでモーダルモードでフォームを開く方法を教えてください。 フォーム1にコマンドボタンを置いて、 それを押すとフォーム2が開くようにしたいのですが この時、フォーム2が開いてる時はエクセルのモーダルモードのように 他の操作はできないようにしたいのですが、どうすればいいですか? いまのままだと、フォーム2を開いてもフォーム1を触ることができます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

フォームのプロパティで設定する方法 ポップアップ はい 作業ウィンドウの固定 はい これで、このフォームを開いている間は他のフォームを触ることができません。 フォームを開くコマンドの引数で設定する方法 DoCmd.OpenForm "フォーム名", , , , , acDialog ダイアログモードで開きます。 後者の場合は、フォームを閉じるまで、次のコードは実行されません。 状況によって使い分けるといいでしょう。

BLPBIW
質問者

お礼

DoCmd.OpenForm "フォーム名", , , , , acDialog だとフォームを閉じるまでずっとVBAが実行中になってしまいますね。 ちょっとこれは不便でした。 ポップアップ はい 作業ウィンドウの固定 はい にしたら理想通りになりました。 ちなみにこれを Form_フォーム2.PopUp = True Form_フォーム2.Modal = True としてVBAでやろうとしたら、 PopUpはデザインビューでしか指定できないようですね。 なので、 Private Sub Form_Open(Cancel As Integer) Form_フォーム2.Modal = True End Sub にしたのですが、 ポップアップ はい にしなくても今く行きました。 ポップアップ はい はどういう効果があるのでしょうか?

その他の回答 (1)

回答No.2

> DoCmd.OpenForm "フォーム名", , , , , acDialog > だとフォームを閉じるまでずっとVBAが実行中になってしまいますね。 > ちょっとこれは不便でした。 これはこれで使い道があります。 例えば、フォームを開いてそのフォーム上で何らかの処理をしてから、次のコードに進みたいときに有用です。 例えば入力フォームでマスターにないデータを入力したいと言うときに、マスター追加用のフォームを開いて、そこでユーザーに入力させてから、次のコードへ進むと言うときなど。 > ポップアップ はい > はどういう効果があるのでしょうか? ポップアップ はい にしてなくても、作業ウィンドウの固定 はい にしておけば他のウィンドウへフォーカスを移動できないので、前面に表示されたままですね。 ただ、他に ポップアップ はい のフォームがあったらそれが前面に表示されます。 その辺りも状況に合わせて設定すればいいでしょう。

BLPBIW
質問者

お礼

ありがとうございます。

関連するQ&A