2017-12-07 7 views
1

하위 폼의 내용을 업데이트하는 함수를 호출하려고합니다. 단, 해당 하위 폼이 화면에 표시되어 있어야합니다. 나는 으로 시험해 보았습니다 .IsLoaded하지만 이것은 작동하지 않는 것 같습니다. 적어도 다음과 같이하지 마십시오 :vba 하위 폼이 화면에 있는지 확인합니다.

If CurrentProject.AllForms(frm_BT_Halbzeug.Form.loadHalbzeug(Me.hidden_bauteil_id)).IsLoaded Then 
     Call Me.frm_BT_Halbzeug.Form.loadHalbzeug(Me.hidden_bauteil_id) 
End If 

불행히도 하위 폼은 메인 폼을 업데이트 할 때마다 호출됩니다. 이 문제를 어떻게 해결할 수 있습니까? 도움을 주시면 감사하겠습니다. 감사합니다. Eric

답변

0
Dim obj As AccessObject 
Dim dbs As Object 

Set dbs = Application.CurrentProject 

' Search for open AccessObject objects in AllForms collection. 
For Each obj In dbs.AllForms 
    If obj.IsLoaded = True Then 
     'Debug.Print obj.Name 
     If obj.Name = "frmSubform" Then 'your main form 
      If Forms!frmSubform!sfrmSubform.Form.Visible Then 'subform 
       'Debug.Print "visible" 
       'do something. 
      Else 
       'Debug.Print "not visible" 
      End If 
     End If 
    End If 
Next obj 

Set dbs = Nothing 
+0

위대한 작품. 내 프로그램을 약간만 수정하면 실행시킬 수 있습니다. – EricQ