2014-09-30 4 views
-1

기본 폼 'MainForm'과 하위 폼 'SubForm'을 가진 액세스 2010 데이터베이스가 있습니다. SubForm은 Subform/Subreport 개체로 MainForm에 연결됩니다. 사용자는 드롭 다운에서 고유 한 식별자를 선택하고 하위 폼은 해당 식별자를 사용하여 하위 폼에 대한 직원 정보를 가져와야합니다. 나는 쓸모있는 방법의 숫자를 시도했습니다 ...SubForm은 MainForm 후에 Requery하지 않습니다.

Private Sub Dropdown_Exit(Cancel As Integer) 
    If IsNull(Me!Dropdown) Or Me!Dropdown= "" Then 
    ' nothing to do due to no one selected 
    Else 
    Forms!MainForm!SubForm.Requery 
    ' Forms!SubForm.Requery 
    ' DoCmd.OpenForm "SubForm",,,"[ID]=" & me!SubForm!ID,,acDialog 
    End If 
End Sub 

주석 처리 된 설명은 내가 시도한 것들 중 일부입니다. 사전

답변

0

에서

덕분에 당신은 당신의 기본 폼에 하위 폼 컨트롤의 LinkMasterField 및 LinkChildField 속성을 지정하여 코드없이이 작업을 수행 할 수 있어야합니다.

양식 디자인 모드에서 LinkChildField를 ID으로 설정해야합니다. LinkMasterField를 Dropdown으로 설정하려고합니다. FilterOnEmptyMaster 속성을 Yes로 설정하여 Dropdown이 채워지기 전에 모든 레코드를 숨기거나, No를 지정하여 Dropdown이 지정되기 전에 모든 레코드를 표시 할 수 있습니다.

편집 : LinkMaster/LinkChild가 적합하지 않은 경우 Dropdown의 AfterUpdate 이벤트를 코딩합니다. 키보드 나 마우스를 사용하여 선택을 마친 후에 실행됩니다. 모양은 다음과 같습니다.

Private Sub Dropdown_AfterUpdate() 
    If Len(Me!Dropdown & "") = 0 Then 
     '' handle cleared Dropdown 
    Else 
     Subform.Form.Filter = "[ID] = " & Me!Dropdown 
     Subform.Form.FilterOn = True 
    End If 
End Sub 

필터를 변경하면 하위 양식이 업데이트되어야합니다.

+0

양식이 바인드되어있어 LinkMaster와 LinkChild를 사용할 수 없습니다. 정보는 뒤에서 SQL 쿼리를 통해 가져옵니다. – designspeaks