2013-10-27 3 views
1

Access VBA를 사용하여 보고서에서 특정 컨트롤의 가치를 얻는 방법을 기억하지 못합니다.VBA를 사용하여 보고서에서 특정 컨트롤의 가치를 얻으십시오?

내 보고서에 여러 행이 있습니다 (쿼리 결과가있는 표가 있음). 한 행의 필드를 두 번 클릭하고 두 번째 쿼리의 결과가 들어있는 별도의 폼을 열 수 있기를 원합니다. 이러한 결과는 원래 두 번 클릭 한 필드의 텍스트를 포함하는 WHERE 절을 기반으로해야합니다.

Me.ControlName.Value를 사용하면 두 번째 보고서가 첫 번째 보고서의 모든 레코드를 사용하고 있습니다. 더블 클릭 된 레코드 만 사용하는 방법은 무엇입니까?

답변

1

WhereConditionDoCmd.OpenReport 옵션을 사용하면 첫 번째 보고서에서 두 번 클릭 한 필드를 기반으로 두 번째 보고서의 레코드 집합을 필터링 할 수 있습니다.

다음 예는 액세스 2007 보고서의 텍스트 상자 과일에 샘플 DB 파일 테스트되었습니다는 문자열 다음 텍스트 상자의 값을 기준으로 WhereCondition 호출을 만드는 두 번 클릭하여 이벤트 프로 시저가 있습니다 해당 문자열이 포함 된 OpenReport ...

Private Sub Fruit_DblClick(Cancel As Integer) 
    Dim strWhere As String 
    strWhere = "[Fruit]='" & Me.Fruit.Value & "'" 
    Debug.Print strWhere 
    DoCmd.OpenReport ReportName:="rptLabel", _ 
     View:=acViewPreview, WhereCondition:=strWhere 
End Sub 
+0

클릭 한 것뿐만 아니라 보고서의 모든 레코드가 계속 순환됩니다. 클릭 한 레코드 만 디버그 메시지에 나타나지만 클릭 한 레코드가 아닌 모든 레코드에 대해 두 번째 보고서를 출력하려고합니다. – ClairelyClaire

+0

마치 WHERE 절이 전혀 포함되지 않은 것과 같습니다. 올바른지 확인했습니다 (쿼리에서 수동으로 사용하면 WHERE 절이 올바르게 작동 함). – ClairelyClaire

+0

나는 그것이 왜 실패하고 있는지 모른다. 그 코드를 Access 2007에서 폼으로 테스트했습니다. 폼 모듈의 선언 섹션에 Option Explicit을 추가 한 다음 VB Editor의 주 메뉴에서 Debug-> Compile을 실행합니다. 컴파일 오류가 발생합니까? – HansUp

관련 문제