2016-10-13 18 views
0

VBAでサブフォームのサブフォームコントロールを参照しようとしています。私はボタンを介してサブフォームを開くメインフォームを持っています。そのサブフォームには、別のサブフォームを開くいくつかのボタンがあります。基本的にはボタン付きロシア人形シナリオ。サブフォームのサブフォームコントロールを別のモジュールで参照するMS Access VBA

最後の目的は、GetFileという関数でサブサブフォームを変数として使用して1つの関数を呼び出すことです。回避策は、現在、各サブフォームのVBAに異なるバージョンのGetFile関数があることです。そして、このモジュールを呼び出し

Private Sub cmdButton_Click() 
    Dim strForm As String 

    strForm = Me.Name 
    Call GetFile(strForm) 
End Sub 

Function GetFile(strForm As String) 

    Forms!frmMainMenu!subFrm.Form!subFrm!chkImport.Visible = True 

End Function 

現在、私はこのエラーを取得:実行時エラー '2465' を

はここで、サブサブフォームのボタンクリックコードです。

答えて

1

Refer to Form and Subform properties and controls

これはあなたのケースである:

Forms!Mainform!Subform1.Form!Subform2.Form!ControlName.Enabled 

あなたの質問は、ビットサブフォームが埋め込まれている "サブフォームを開く"(混乱しているが、あなたはおそらく

Forms!frmMainMenu!subFrm.Form!subFrm.Form!chkImport.Visible = True 

をしたいですか?親の形で)。


パラメータとして代わりにその名前のフォームオブジェクトを渡すことが容易になることがあります。

Call GetFile(Me) 

階層内のフォームは、単にそれを直接使用し、ここでそれは問題ではありません。

Function GetFile(myForm As Form) 

    myForm!chkImport.Visible = True 

End Function 
+0

あなたは彼らが言うことを知っている、より簡単なオプションは常に最高です。状況には関係ありません。 – thedoorbehindyourmind

+0

:)。しかし、本当にありがとう!私は文字列としてフォーム名を渡すように考えていたので、オブジェクトとして渡すとは思っていませんでした。 – thedoorbehindyourmind

+0

ああ。混乱してごめんなさい。言い訳しない。私はちょうどばかだ。 :D – thedoorbehindyourmind

関連する問題