2017-05-11 2 views
0

SQL에 걸림돌이 발생하여 솔루션을 파악할 수 없습니다. 오류를 일으키는 코드 부분을 분리했지만 해결할 수없는 것 같습니다. 문제는 내 SQLHaving 성명의 (TimeValue([tblDeptTime]![DeptTime]) BETWEEN (TimeValue([tblAllSchedules]![MX Out Date/Time]) - [tblDeptWindowsLeadTimes]![NBLT]) AND TimeValue([tblAllSchedules]![MX Out Date/Time]) 부분에 있습니다.MS Access 2010 VBA SQL 오류 3122

오류가 지정된 식을 포함하지 않는 쿼리를 실행하려고 함을 나타냅니다. [Schedule Name])=[Forms]![frmStationReports]![cbxSchedName]) AND (([tblAllSchedules]![Arvl Sta])=[Forms]![frmStationReports]![cbxArvlSta]) AND DateValue([tblAllSchedules]![MX Out Date/Time]) >= #" & FMon & "# AND DateValue([tblAllSchedules]![MX Out Date/Time]) <= #" & LSun & "#) AND ((tblAllSchedules.Type)='NB' 이것은 내 SQLHaving 문의 첫 번째 부분입니다.

다음은 전체 SQL 코드입니다. 도움을 주셔서 감사합니다.

SQLInsert = "INSERT INTO tblDeptWindowNB ([Schedule Name], [Arvl Sta], [Day], [Date], Metal, Type, [Key ID], [LAA NB], [LUS NB], [Sub Fleet], CompSchedName, CompSchedDay, DeptTime) " 
    SQLSelect = "SELECT [Schedule Name], [Arvl Sta], Format(DateValue([tblAllSchedules]![MX Out Date/Time]),'ddd') AS [Day], DateValue([tblAllSchedules]![MX Out Date/Time]) AS [Date], Metal, Type, [Key ID], [LAA NB], [LUS NB], [Sub Fleet], '" & csName & "', Sum(DateDiff('d', '" & FMon & "' , [tblAllSchedules]![MX In Date/Time])+ 1) AS CompSchedDay, [tblDeptTime]![DeptTime] " 
    SQLFrom = "FROM tblDeptTime, tblAllSchedules, tblDeptWindowsLeadTimes " 
    SQLGroup = "GROUP BY [Schedule Name], [Arvl Sta], DateValue([tblAllSchedules]![MX Out Date/Time]), [tblDeptTime]![DeptTime], Metal, Type, [Key ID], [LAA NB], [LUS NB], [Sub Fleet] " 
    SQLHaving = "HAVING ((([tblAllSchedules]![Schedule Name])=[Forms]![frmStationReports]![cbxSchedName]) AND (([tblAllSchedules]![Arvl Sta])=[Forms]![frmStationReports]![cbxArvlSta]) AND DateValue([tblAllSchedules]![MX Out Date/Time]) >= #" & FMon & "# AND DateValue([tblAllSchedules]![MX Out Date/Time]) <= #" & LSun & "#) AND ((tblAllSchedules.Type)='NB') AND (TimeValue([tblDeptTime]![DeptTime]) BETWEEN (TimeValue([tblAllSchedules]![MX Out Date/Time]) - [tblDeptWindowsLeadTimes]![NBLT]) AND TimeValue([tblAllSchedules]![MX Out Date/Time]))" 
    SQLOrderBy = "ORDER BY [Schedule Name], [Arvl Sta], DateValue([tblAllSchedules]![MX Out Date/Time])" 

    SQLStatement = SQLInsert & SQLSelect & SQLFrom & SQLGroup & SQLHaving & SQLOrderBy & ";" 

    DoCmd.RunSQL SQLStatement 
+0

HAVING 줄 끝 부분에 공백이 필요합니까? –

+0

권자, 나는 바란다. 마지막 편집을 마쳤을 때 삭제 했음에 틀림 없으나 지금도 같은 오류가 남아 있습니다. –

+0

SQL에서 직접 실행 해 보았습니까? 일반적으로이 문제는 내가 선택한 목록에 열을 포함하는 것을 잊었 기 때문에 발생합니다. –

답변

0

알아 냈습니다. (TimeValue([tblDeptTime]![DeptTime]) BETWEEN (TimeValue([tblAllSchedules]![MX Out Date/Time]) - [tblDeptWindowsLeadTimes]![NBLT]) AND TimeValue([tblAllSchedules]![MX Out Date/Time]) 문을 Where 문으로 이동해야만 완벽하게 작동합니다. 고마워.