2017-05-11 35 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ステートメントに移動する必要があり、今は完全に機能します。みんなありがとう。