frmSearch
이라는 Access 2007에서 검색 양식/보고서 작성기를 개발하고 있습니다. 기존의 검색 양식은 잘 작동하여 결과를 tabcontrol의 하위 형식으로 표시합니다. 그런 다음 모든 테스트에 대한 보고서를 표시하는 버튼을 클릭하면 정상적으로 작동합니다. 단일 fldTestsID
에 대한 보고서를 표시하도록 코드를 수정하고 싶지만 Form/Subform/Control 경로 구문이 붙어 있습니다.form tabcontrol subform 런타임 오류 468 : 개체가이 속성 또는 메서드를 지원하지 않습니다.
두 개의 탭이 있습니다. tabResultsTabular
은 쿼리 양식의 행 목록으로 서브 양식 frmResultsTabular
을 표시합니다. tabResultsRecord
은 하위 레코드 frmResultsRecords
을 보여 주며 단일 레코드를 보여줍니다. 보고서는 rpt_TestDatasetExposureEffects
입니다. 보고서의 기본 쿼리는 fldTestsID
이라는 필드가 포함 된 q_TestDatasetExposureEffect
입니다.
따라서 경로 tabResultsRecord
-frmSearch
가 fldTestsID
에 frmResultsRecords
cmdQAReportResults
버튼을 포함한다.
나는 그것이 동일한 오류에 대한 다른 게시물이지만, 작동시키지 못했다고 생각합니다. DoCmd.OpenReport의 Access 2007 문서에는이 특정 인스턴스에 대한 언급이 없습니다.
다음은 시도한 옵션을 포함한 cmdQAReportResults
클릭 이벤트 코드입니다. 라인 strRptWhere =
에서 실패합니다. 구문은 Access 2007 docs을 기반으로 작동합니다.
Private Sub cmdQAReportResults_Click()
doQAReport
End Sub
Private Sub doQAReport()
'On Error GoTo Err_doQAReport 'comment during debugging
Dim stDocName As String ' report name
' Dim strRptSQL As String ' report SQL String
Dim strRptWhere As String ' report WHERE clause
stDocName = "rpt_TestDatasetExposureEffects"
'Override the recordsource to match the current record TestsID
' strRptSQL = "SELECT * FROM q_TestDatasetExposureEffects WHERE fldTestsID = " & fldTestsID
' DoCmd.OpenReport stDocName, acPreview
strRptWhere = "0 = 0"
strRptWhere = "fldTestsID = " & Me.Form![tabResultsRecord].fldTestsID.Value 'error 468
' other attempts follow
' strRptWhere = "fldTestsID = " & Forms("frmSearch").Controls("tabResultsRecord").Form.Controls("frmResultsRecords").Form.Controls("fldTestsID").Value
' strRptWhere = "fldTestsID = " & Me.Form.fldTestsID 'error 2465
DoCmd.OpenReport stDocName, acPreview, , strRptWhere
' Reports("rpt_TestDatasetExposureEffects").RecordSource = strRptSQL
Exit_doQAReport:
Exit Sub
Err_doQAReport:
MsgBox Err.Description
Resume Exit_doQAReport
End Sub
이 줄에 같은 오류 438이 표시됩니다. 'strRptWhere = "fldTestsID ="& Forms ("frmSearch"). Form.frmResultsRecords.fldTestsID' 속성을 표시하기 위해 하위 폼의 테두리와 F4를 클릭하면 항목 이름이 frmResultsRecords라고 표시됩니다. 오브젝트 뷰어의 양식 이름은 frmResultsRecords입니다. –
컨트롤의 이름은 fldTestID입니까, 아니면 필드의 이름입니까? –
필자는 예제에서 잘못된 부분에'Form'을 넣었습니다. 위의 구문과 일치하지 않으므로이를 수정했습니다. 그것을 바꾸어보십시오. –