2011-05-16 6 views
4

주 폼에 2 개의 하위 폼이 있습니다. Sub_2는 sub_1에서 선택한 항목의 세부 정보를 목록에 표시합니다. 두 하위 양식 모두에 대해 계속 양식을 사용하며 두 필드에 공통적으로 'id'라고하는 한 필드가 있습니다.다른 하위 폼의 Requery 하위 폼, 문제

내가 무슨 짓을하는 것은 내가 기록을 더블 클릭하면, 다음

Me.Parent.sub_2.Form.Filter = "id=" & "'" & Me.Recordset!id & "'" 

다시 쿼리

Me.Parent.sub_2.Form.Requery 

그러나 행운처럼 sub_2의 필터를 설정하는 sub_1에 DClick 이벤트에 코드를 추가하는 것입니다 sub_1에서 sub_2의 변경 사항이 없습니다. 나는 관련 질문에 대해 살펴 봤는데, 나는 이것이 효과가 있다고 생각한다 ...

어떤 제안이라도? 어쩌면 내가 다른 접근 방식을 사용해야합니까?

추신 : Me.Parent.sub_2.Filter은 변경되었지만 재 쿼리는 작동하지 않습니다.

편집 :

답변 해 주셔서 감사합니다. 나는 'id'필드가 쿼리에 있지만 문제가있는 것을 발견하지만 하위 폼에는 표시되지 않으므로 Access에서는 사용할 수 없습니다.

필터를 변경하면 Access에서 자동으로 다시 쿼리를 수행합니다.

답변

4

필터 속성을 사용하여 어떤 작업을 수행하지 않아도됩니다.

첫 번째 하위 폼에서 폼의 일반 단일 하위 폼 컨트롤과 마찬가지로 링크 마스터 필드 및 하위 필드 연결 속성을 설정합니다.

두 번째 하위 폼의 경우 일반 하위 폼 컨트롤과 마찬가지로 하위 필드 연결 속성도 설정하십시오. 링크 마스터 필드 속성은 첫 번째 하위 폼의 컨트롤 이름 [하위 양식 1 컨트롤 이름]! FieldName을 참조합니다. 첫 번째 하위 폼 컨트롤의 OnCurrent 이벤트에

은 VBA 코드의 다음 줄을 추가합니다 :

Me.Parent.Controls![Subform 2 Control Name].Requery 

양식을 실행합니다. 첫 번째 하위 폼의 행을 클릭하면 두 번째 하위 폼이 첫 번째 하위 폼에서 선택한 행에 대한 자식 행을 표시하도록 다시 쿼리합니다.

+0

좋은 생각입니다. 그것은 작동합니다. – darkjh

+0

위의 해결책은 약간의 변경 없이는 작동하지 않는다는 것을 발견했습니다. 'Me.Parent.Controls! SubformName.Form.Requery' (즉,'Form.' 삽입)가되어야합니다. –

0

당신은 같은 것을 필요 해요 다음 Subform1 및 Subform2이의 이름이어야 경우

Me!Subform2.Form.Requery 
'or 
Forms!Mainform!Subform1.Form!Subform2.Form.Requery 

내가 이것을 테스트 할 시간이 없었다 그래서 나는 확실히 말할 수 없어요 실제 하위 양식 또는 단순히 하위 폼 컨트롤/컨테이너. 나는 그것이 후자라고 생각한다.
http://access.mvps.org/access/forms/frm0031.htm

해당 페이지와 나의 유일한 불만은 그들이 방법, 잠수함/함수를 호출, 또는 공용 변수를 참조 적용되지 않는다는 것입니다 :

다음은 이러한 질문에 대한 훌륭한 소스입니다. 이 모든 것은 거기에 나열된 시나리오와 약간 다릅니다 (또는있을 수 있습니다).

2

필터 식을 지정한 후에 FilterOn 속성을 True로 설정하십시오.

Me.Parent.sub_2.Form.Filter = "id=" & "'" & Me.Recordset!id & "'" 
Me.Parent.sub_2.Form.FilterOn = True 
관련 문제