2015-01-21 5 views
2

하위 폼 (frmDocumentDatasheet)이있는 폼 (frmDocumentList)과 보고서 (rptDocumentList)를 여는 인쇄 단추가 있습니다.MS Access - 하위 폼의 빠른 필터

내가 원하는 것은 하위 폼에서 "빠른 필터 기능"(정렬 & 필터 리본)을 사용하는 것입니다. 그런 다음 필터링 된 데이터를 보고서로 전달하십시오.

현재 보고서는 모든 데이터를 사용합니다.

나는 이것이 간단한 문제라고 생각하지만 해결할 수 없다. 나는 vba에 경험이있다. 누군가가 나를 도울 수 있기를 바랍니다. 내 나쁜 영어 여기

에 대한 - 미안 내가 시도 VBA입니다 :

Private Sub Command17_Click() 

If Not IsNull(Me.Form![Document Datasheet].[Filter]) Then 
    DoCmd.OpenReport "RptDocumentList", A_PREVIEW, , Me.Form![Document Datasheet].Filter 
Else 
    MsgBox "Apply a filter to the form first" 
End If 
End Sub 

내 문제는 내가 하위 폼에 사용되는 빠른 필터가 보고서에 적용되지 않는다는 것입니다.

+0

지금까지 해보신 것은 무엇입니까? VBA를 게시 할 수 있습니까? 무슨 문제가 있니? – Smandoli

+0

내 질문을 편집했습니다. 도와 줘서 고마워. –

답변

1

명령 단추가 기본 폼에있는 경우 하위 폼에있는 필터를 원한다면 다른 필터를 원할 수 있습니다. 같은 뭔가 :

Option Explicit ' <- be sure this is at top of module 
       ' ...and run Debug>Compile so it can perform its check 

'' And on your button click event: 
Private Sub Command17_Click() 
    Dim strFilter as String 
    strFilter = Me.Form![Document Datasheet].[Filter] 
    Debug.Print strFilter 
    If strFilter <> "" Then 
     DoCmd.OpenReport "RptDocumentList", A_PREVIEW, , strFilter 
    Else 
     MsgBox "Apply a filter to the form first" 
    End If 
End Sub 

는 그냥 이름 하위 폼의를 참조 - 즉, 통제 이름이 기본 폼에 볼 수있다. here 더보기.

strFilter과 같은 변수를 사용하면 무엇이 발생했는지 (또는 발생하지 않았는지) 볼 수 있도록 제어 할 수 있습니다.

Debug.Print 명령을 사용하면 필터 문자열이 직접 실행 창에 표시됩니다. 이 문제에 익숙하지 않은 분이라면 의심의 여지없이 도움이 될 것입니다. 한 가지는 출력을 게시 할 수 있습니다. 어쩌면 문자열이 어떻게 든 문제가 될 수 있습니다.

내 코드 테스트에서 빈 문자열 ("")을 발견하게됩니다. 필터가 빈 문자열 일 수 있고 IsNull() 테스트가이를 감지하는 데 도움이되지 않습니다.

+0

내 명령 단추가 메인 폼에있다. 그래서 내 하위 폼의 이름입니다 : frmDocumentDatasheet "뿐만 ISNULL (Me.Form frmDocumentDatasheet.Filter가!) 그런 경우" 그러나이 지금은 오류가 –

+0

하지 ISNULL하면 ... 필드 frmDocumentDatasheet를 찾을 수 없습니다 있음 (Forms.frmDocumentList.frmDocumentDatasheet.Form) 그런 다음 ?? 다음 오류가 발생합니다. 응용 프로그램 정의 또는 개체 정의 오류 –

+0

양식을 만들 때 지정한 이름을 탐색 패널에 표시된 이름으로 사용하지 마십시오. 하위 폼을 만들면 기본 폼의 컨트롤이되었습니다. 그 컨트롤은 속성으로 발견되는 이름을 가지고 있습니다. 이것이 당신이 사용해야하는 이름입니다. 내가 제공 한 링크를 통해이 사실을 명확히 알 수 있습니다. – Smandoli