2017-04-12 5 views
1

frmCCAuto라는 이름의 폼이 있습니다. 여기에는 날짜 범위를 포함하는 시작 날짜 및 종료 날짜 텍스트 필드가 포함되어 있습니다. 하위 폼 "subCCAuto-Open" "(내 노인이 '-'로 하위 양식 이름을 사용하기로 결정한 이유는 알지 못합니다.) 기본보기가 데이터 시트이고 해당 레코드 소스가 테이블 tblPayments_Auto에서 가져온 것입니다. 그래서, 기본 폼에있는 날짜 범위에 따라 하위 폼에 표시된 레코드를 필터링해야합니다. 즉, 내가 언변하는 두 개의 언 바운드 텍스트 상자에서 사용자가 날짜 범위를 입력하고 기본 폼 상자에 입력 된 날짜 범위의 레코드 만 표시하도록 하위 폼을 필터링 할 수 있습니다. 내가 작업 한 코드는 다음과 같습니다 내 코드를 디버깅 할 때기본 폼을 통해 하위 폼 날짜 열을 입력하십시오. VBA 액세스의 날짜 범위 항목

Private Sub Form_Open(Cancel As Integer) 
    Dim db As Database 
    Set db = CodeDb 

    db.Execute "DELETE * FROM tblPayments_Auto;" 
    DoCmd.SetWarnings False 
    DoCmd.OpenQuery "qryPayments_AddAuto" (store procedure: sp_qryPayments_AddAuto) 
    DoCmd.SetWarnings True 

    Me.subOpen.Requery 
    ProcessBtn.Enabled = False 
End Sub 

Private Sub Filter_Click() 
    With Forms!frmCCAuto![subCCAuto-Open].Form 
     .Filter = "[InvoiceDate] BETWEEN #" & Me.StartDate & "# AND #" & Me.EndDate & "#" 
     .FilterOn = True 
    End With 
End Sub 

, 그것은 나에게 Microsoft Access can't find the field subCCAuto-Open referred to in your expression.이 도와주세요 없다는 오류를 제공합니다.

+0

Me! [subCCAuto-Open] .Form'이이 작업을 수행합니다. –

답변

0

수정 된 구문을보십시오 :

Private Sub Filter_Click() 
    With Forms!frmCCAuto.Form![subCCAuto-Open] 
     .Filter = "[InvoiceDate] BETWEEN #" & Format(Me!StartDate.Value, "yyyy\/mm\/dd") & "# AND #" & Format(Me!EndDate.Value, "yyyy\/mm\/dd") & "#" 
     .FilterOn = True 
    End With 
End Sub 

것은 frmCCAuto은 하위 폼 제어의 이름이어야합니다 곳.