2016-12-09 1 views
0

나는 Access에서 MainForm을 가지고 있다고 가정 해 보겠습니다.VBA 액세스 - 폼의 인스턴스를 하위 폼 컨트롤에 지정할 수 있습니까?

그 위에 MainFormSubForm 컨트롤입니다.

나는 또한 다른 형태를 가지고

내가 그것을 SourceObject 재산의 사용 MainFormSubForm 제어에 연결하려는 AnotherForm을했다.

그러면 변수에 새로 생성 된 AnotherForm의 인스턴스를 캡처하고 싶습니다.

나는 이런 식으로 그 작업을 수행 할 수 있습니다

'Inside the MainForm's code-behind 
Me.SubForm.SourceObject = "Form.AnotherForm" 

Dim af As Form_AnotherForm 

Set af = Me.SubForm.Form 

쿨, af 지금은 그것이 SourceObject 숙박 시설의 설정할 때 SubForm 제어에 의해 생성 된 형식의 인스턴스를 보유하고 있습니다.

자, 대신의 내가 AnotherForm의 인스턴스를 보내고 다음 SubForm 컨트롤에 전달 첫째 new에 의해 그 과정을 반대로하고 싶은 말은하자.

'Inside the MainForm's code-behind 
Dim af As Form_AnotherForm 

Set af = New Form_AnotherForm 

Me.SubForm.Form = af 'ERROR: Read-only 

달성 다른 방법을 사용하여 해당 할 수있는 방법 :

이론적으로는 다음과 같이 보일 것인가?

다른 폼을 SubForm 컨트롤에 첨부하고 런타임에 전환 할 수 있기를 원합니다. 내가 AnotherFormSubForm에 연결할 경우, 그때가 처음 사용 된 내가 AnotherForm의 동일한 인스턴스를 사용하려면, 다음 내가 돌아가서 다시 AnotherFormSubForm에 첨부 SubFormYetAnotherForm를 부착 거기에 변경이되지 않도록 다시 나타날 때 잃어 버려라.

답변

1

내가 아는 한 불가능합니다. 하위 폼의 인스턴스를 바꿀 수 없으며 SourceObject 만 변경할 수 있습니다.이 작업은 하위 폼의 이전 인스턴스를 삭제하고 "처음부터"새 인스턴스를 만듭니다.

전환 할 모든 하위 양식의 인스턴스를 유지하는 데 탭 컨트롤을 사용합니다. 탭으로 스타일 컨트롤 none을 작성하고 테두리를 투명하게 만들어 하위 폼의 모양이 하나의 하위 폼처럼 동일하게 만듭니다. 제어가 사용되었습니다.

보이는 서브 폼 사이를 전환하려면 탭 컨트롤에 필요한 값을 할당하십시오.

+0

재미있는 아이디어에 감사드립니다! – BarrettNashville

관련 문제