2012-07-08 1 views
2

Admform이라는 폼과 AdmReport라는 보고서가있는 AdmQuery라는 쿼리가 있습니다. Admreport에 대한 Open_Event에서 AdmForm을 호출하여 시작 날짜와 종료 날짜를 두 개의 언 바운드 상자에 입력하고이를 사용하여 쿼리를 실행하고 결과를 보고서에 표시합니다.액세스 보고서 보고서 열기 이벤트를 실행하기 전에 쿼리 실행

그러나이 문제는 보고서를 실행할 때 보고서와 열린 이벤트가 함께 실행되어 양식 자체가 보고서와 함께 열리기 때문에 문제가되는 것입니다 (처음에는 데이터가 없습니다). 따라서 보고서를 닫고 양식에 날짜를 입력 한 다음 양식의 다른 단추를 통해 보고서를 미리보아야합니다. 모든 것이 좋습니다.

Report_Open_Event를 실행 한 후에 만 ​​기본 쿼리를 실행하는 액세스 보고서를 지연시키는 방법이 있습니까?

나는 사용자가 Admform에서 날짜 값을 입력하는 동안 기다려야 AdmReportReport_Open 절차를 강제로 대화 모드에서 액세스 2003

답변

4

열기 AdmForm를 사용합니다. 내 AdmForm

cmdOK라는 명령 단추를 포함, 그것은 클릭 이벤트가 AdmReportReport_Open 절차를 계속할 수 숨겨진 모드에서 폼을 재개합니다. AdmForm은 이제 숨겨졌지만 텍스트 상자 및 포함 된 값은 AdmQuery (AdmReport의 레코드 소스)에서 사용할 수 있습니다.

다음은 명령 단추의 click 이벤트 코드입니다.

Private Sub cmdOK_Click() 
    DoCmd.OpenForm Me.Name, acNormal, , , , acHidden 
End Sub 

다음은 내 버전 AdmReport의 코드입니다. 필자는 Access 2007과 함께 테스트했지만 Access 2003에서도 작동해야한다고 생각합니다.

Option Compare Database 
Option Explicit 

Const mcstrForm As String = "AdmForm" 

Private Sub Report_Close() 
    DoCmd.Close acForm, mcstrForm 
End Sub 

Private Sub Report_Open(Cancel As Integer) 
    DoCmd.OpenForm mcstrForm, acNormal, , , , acDialog 
End Sub 

공지 사항 나는 AdmReport에 대한 Report_Close() 절차를 포함. 그 목적은 간단히 (지금 숨겨진) AdmForm을 닫는 것입니다.

+0

다양한 날짜에 동일한 날짜를 사용하거나 동일한 보고서를 다시 인쇄 할 수 있기 때문에 양식을 열어두고 숨겨 두는 것이 유용 할 수 있습니다. 물론 그것은 응용 프로그램에 많이 의존합니다. – Fionnuala

+0

감사합니다 얘들 아, 이걸 시도하자 그리고 난 다시 당신에게 돌아갈 것이다 !! –

+0

Perfecto !!!!!! –