ダイアログモードで別のフォームを開くボタンがあるフォームがあります。それを開いたフォームに関する情報を含むダイアログフォームプロパティはありますか?私のようなもの。ソバフォームでは?私はそれを達成するために知っている唯一の方法は、OpenArgsを使用するのですが、...もっと厳格な何かのために何か提案ダイアログフォームの「親」フォームを参照
SMOKのため
感謝を願って。
ダイアログモードで別のフォームを開くボタンがあるフォームがあります。それを開いたフォームに関する情報を含むダイアログフォームプロパティはありますか?私のようなもの。ソバフォームでは?私はそれを達成するために知っている唯一の方法は、OpenArgsを使用するのですが、...もっと厳格な何かのために何か提案ダイアログフォームの「親」フォームを参照
SMOKのため
感謝を願って。
同じフォームの複数のバリアントを開いていない限り、Forms
コレクションは通常の方法です(Gustav氏)。
あなたは、このようなフォームオブジェクトにアクセスすることができます変数を参照する他の方法の負荷があります
Forms!ParentformName.Form
を、June7は、最も一般的なものを指摘しました。
Public Parentform As Form
メインフォームの場合:私は、サブフォームオブジェクトsubfromで
でグローバル変数を好む
Private Sub OpenForm
DoCmd.OpenForm "myForm"
Forms!myForm.Parentform = Me.Form
End Sub
または、メインに依存のダイアログフォームを開くには形式:
Private dialogForm As Form
Private Sub OpenForm
Set dialogForm = New Form_myForm
dialogForm.Parentform = Me.Form
dialogForm.SetFocus
End Sub
最後のappr oachには、ダイアログフォームの複数のインスタンスをサポートするなど、いくつかの利点があります(特に、Private dialogForm As Form
をPrivate WithEvents dialogForm As Form
に変更すると、ダイアログボックスが閉じたときに検出できます。ダイアログボックスを開き、メインフォームなどでそれらを処理します。 dialogFormにフォームモジュールが必要です。
件名の幅広い説明をありがとうございます。もう1つの質問ですが、最後のアプローチ(「新しい」キーワードを使用)を使用してフォームとしてダイアログを開くことは可能ですか? – Smok
@Smok私が知っている限りではありませんが、常にPopUp'プロパティを 'True'に設定すれば、常にそのように開くことができます。ただし、フォームがデザインビューでない限り、読み取り専用なので、開いたときに変更することはできません。 –
_OpenArgs_はかなり柔軟です。 Formsコレクションのフォーム名またはフォームインデックスを渡すことができます。 – Gustav
プロパティはありません。オプションはOpenArgs、グローバル変数、TempVars、ダイアログフォーム上のテキストボックスの値を設定します。 – June7