在我开始之前,我知道这里有一大堆错误3075问题,而且我已经通过他们很好地查找了一个可以帮助我的问题,但我一直无法做到。
我有一个用VBA编写的Access数据库。我试图执行一个只是查询数据库的SQL语句。我收到经典的3075错误,这表明我的SQL查询无效。我已经将查询打印到消息框中,对我而言看起来很好,但我使用内部联接并且我对它们不太熟悉。
有人可以查看我的代码来帮我一把吗?
我的SQL相关VBA代码如下:
MsgBox strSQL
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If rs.RecordCount > 0 Then
rs.MoveLast
lblTotal.Caption = rs.RecordCount
Else
lblTotal.Caption = "0"
End If
非常标准的东西。我还没有包括我如何组成strSQL
,因为它基于一组复杂的if语句。我尝试设置Recordset时strSQL的值是:
我怀疑我引用日期的方式有问题。为了给你全面的图片,下面是三个引用的表:
我尝试通过直接删除SQL语句来隔离问题。我可以使用像SELECT * FROM tblHistory
之类的简单语句来处理它,并为其添加WHERE
参数,但是一旦我引入了内连接,我再次得到了3075错误。
有谁知道我哪里出错了?这让我很生气!
答案 0 :(得分:1)
Access抱怨查询,因为WHERE
子句位置错误。
您需要SELECT ... FROM ... WHERE ... INNER JOIN
SELECT ... FROM ... INNER JOIN ... WHERE
这种模式
换句话说,将WHERE
子句移动到查询语句的末尾。