2013-11-20 4 views
2

사용자가 양식의 콤보 상자에서 선택한 보고서를 기반으로 보고서를 열고 필터링하려고합니다.하나의 양식에서 다른 보고서를 동적으로 열고 필터링합니다.

먼저 내가 보고서를 열어 해요 : : 예를 단순화하기 위해, 여기에 내가 다루고있어 새로운 기능이 잘 작동

Dim strReportName As String 
strReportName = "General Information" 
DoCmd.OpenReport strReportName, acViewPreview 

, 내가 노력하고있어 문제 arrises이 필터를 적용 할 수 있습니다.

With Reports!strReportName 
    .Filter = strFilter 
    .FilterOn = True 
End With 

나는이 방법으로 변수 reportname을 사용하는 것이 불가능한 것 같습니다.

Run-time error '2451': 

The report name 'strReportName' you entered is misspelled or refers to a report that 
isn't open or doesn't exist. 

내 질문은 : 다음과 같이 말할 필요도없이, VBA에 의해 슬로우 오류는 나를 VBA에 reportnames를 하드 코딩 할 필요없이 현재 열려 보고서를 필터링시키는에이 사항을 변경할 수있는 방법이 있습니까?

+0

유일한 방법 I이다 그것의 [** 프로그램 적으로 모듈을 삽입 **] (http://stackoverflow.com/questions/18978839/dynamically-create-dynamic-arrays-in-vba/18979499#18979499)라고 생각할 수 있으며 strReportName을 실제 이름. 나는 그런 식으로하는 것을 권장하지 않겠지 만, 내가 알고있는 유일한 해결책이다. –

답변

0

strReportName에 .. 보고서의 이름이 포함 된 변수는,이 실패의 발견 된

With Reports!strReportName 

사용이 대신 ...

With Reports(strReportName) 
+0

왜 가장 큰 braincrackers는 언제나 결국 간단 해 ... 고마워! – user3013200

관련 문제