2011-11-11 8 views
-1

フォームをダイアログとして開き、OpenArgsプロパティで文字列を渡そうとしています。何を試しても、私はInvalid use of null errorを得ます。OpenArgsフォームのエラーをNULLとして渡しますか?

フォームが開いていません。デザインモードでも開いていません。誰も私のためにこれについていくつかの光を当てることができますか?ここで

は、呼び出し元のラインです:

DoCmd.OpenForm strTmpForm, acNormal, , , , acDialog, "Hi" 

ここでフォームを開きサブは

Private Sub Form_Open(Cancel As Integer) 
    MsgBox Me.OpenArgs 
End Sub 
+0

データエラーのような別のエラーが発生することがあります。 MsgBox Nz(Me.OpenArgs)を使用するとフォームが正しく動作しますか? –

+0

ここにいくつかの情報があります:http://www.accessmonster.com/Uwe/Forum.aspx/access-forms/50466/OpenArgs-yawn-yawnこれは、情報をフォームに渡す信頼性のない方法です。フォーム上にプロパティを作成し、それを表示する前にプロパティを設定する方が良いかもしれません。 –

+0

可能な複製http://stackoverflow.com/questions/258556/openargs-is-null-error –

答えて

1

ターゲットフォーム上にあるフォームが開いて隠していませんか?通常、通常のダイアログパターンでは、ダイアログフォームを隠して、呼び出し元のメソッドで制御を再開できるようになっている可能性があります。

If SysCmd(acSysCmdGetObjectState, acForm, strTmpForm) <> 0 Then 
    DoCmd.Close acForm, strTmpForm 
End If 

それは問題ではない場合は、全体の呼び出し方法ではなく、呼び出し元のラインを投稿することができた場合、私は尋ねたい:特定的には

+0

YAY !!!! OliverとPhoogの間で、あなたは私を節約しました!!私はいつもこれを乱してきた。私はフォームを閉じていたので、それはまだ問題だとは思わない。私はあなたの 'If SysCmd ...'ロジックを追加しました。しかし、私はそれが本当に差をつけたのはNZ()関数だと思います。それがなぜ機能するのか分かりませんが、そうです! ありがとう、ありがとう、ありがとう.... – MultiGuy

+1

これが適切な回答であれば、それを解決済みとしてマークする必要があります。 – Reafidy

関連する問題