MS Access 2010 VBA SQL错误3122
我的SQL遇到了一个障碍,我似乎无法找到解决方案。我已经隔离了导致错误的代码部分,但似乎无法修复它。问题出现在我的MS Access 2010 VBA SQL错误3122,sql,vba,ms-access-2010,Sql,Vba,Ms Access 2010,我的SQL遇到了一个障碍,我似乎无法找到解决方案。我已经隔离了导致错误的代码部分,但似乎无法修复它。问题出现在我的SQLHaving语句的(TimeValue([tblAllSchedules]![MX Out Date/Time])-[tblDeptWindowsLeadTimes]![NBLT])和TimeValue([tblAllSchedules]![MX Out Date/Time])之间的(TimeValue([tbldeptime]![DeptTime])部分 该错误表示我正在尝试
SQLHaving
语句的(TimeValue([tblAllSchedules]![MX Out Date/Time])-[tblDeptWindowsLeadTimes]![NBLT])和TimeValue([tblAllSchedules]![MX Out Date/Time])之间的(TimeValue([tbldeptime]![DeptTime])
部分
该错误表示我正在尝试执行一个不包含指定表达式[Schedule Name])=[Forms]的查询![frmStationReports]![cbxSchedName])和([tblAllSchedules]![Arvl Sta])=[Forms]![frmStationReports]![cbxArvlSta])和日期值([tblAllSchedules]![MX Out Date/Time])>=#“&FMon&”和日期值([tblAllSchedules]![MX Out Date/Time])我算出了。我需要将(TimeValue([tbldeptime]![DeptTime])移动到(TimeValue([tblAllSchedules]![MX Out Date/Time])-[tblDeptWindowsLeadTimes]![NBLT])和TimeValue([tblAllSchedules]![MX Out Date/Time])之间
语句转换成其中的语句,现在它工作得很好。谢谢各位。你们只需要在行的末尾留一个空格吗?哈哈,我希望如此。我上次编辑时一定已经删除了,但它现在在那里,仍然有相同的错误。你们试过直接在SQL中运行它吗?通常当我遇到类似这样的问题时这是因为我忘了在我的选择列表中包含一列。你真的要对所有这些表进行交叉联接吗?这些表是否都与联接键不相关?我只有MS Access,它仍然给出相同的答案。但我会仔细检查我的列。
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