MS ACCESS - 错误运行SQL 3141中VBA

问题描述:

我得到在MS Access错误,而基于组合框MS ACCESS - 错误运行SQL 3141中VBA

The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect. 

这里我的代码

Private Sub Text4_AfterUpdate() 
If (Me.Text4.Value = "(ALL)") Then 
    filterORIGIN_COD = "SELECT SUMMARY.DEST_CITY, SUMMARY.DESTINATION, Count(SUMMARY.CNOTE_NO) AS CountOfCNOTE_NO1" & _ 
       "FROM SUMMARY" & _ 
       "WHERE (((SUMMARY.ORIGIN_CODE) Like " & "'" * "'" & ")))" & _ 
       "GROUP BY SUMMARY.DEST_CITY, SUMMARY.DESTINATION, SUMMARY.TGL_DATA, SUMMARY.ORIGIN_CODE, SUMMARY.ORIGIN, SUMMARY.DEST_CODE;" 


Else 
    filterORIGIN_COD = "SELECT SUMMARY.DEST_CITY, SUMMARY.DESTINATION, Count(SUMMARY.CNOTE_NO) AS CountOfCNOTE_NO1" & _ 
       "FROM SUMMARY" & _ 
       "WHERE (((SUMMARY.ORIGIN_CODE)=" & """Me![Text4]""" & ")))" & _ 
       "GROUP BY SUMMARY.DEST_CITY, SUMMARY.DESTINATION, SUMMARY.TGL_DATA, SUMMARY.ORIGIN_CODE, SUMMARY.ORIGIN, SUMMARY.DEST_CODE;" 

End If 
Me![OUTBOUND_DETAIL].Form.RecordSource = filterORIGIN_COD 
Me![OUTBOUND_DETAIL].Requery 


End Sub 

附加试图改变窗体记录源 实际上我试图过滤子表单(查询记录源),有人能告诉我更好的方法来做到这一点吗? :)

+1

结果字符串之前有没有空间单词“FROM”,例如“... CountOfCNOTE_NO1FROM SUMMARY ...” –

如果试图在一个触发事件筛选子窗体,只需使用DoCmd.ApplyFilterDoCmd.SetFilter(用于访问2010+)方法,其也可在宏:

Private Sub Text4_AfterUpdate() 
    DoCmd.ApplyFilter , "[SUMMARY.ORIGIN_CODE]='" & Me![Text4] & "'" 
End Sub