访问VBA运行时错误3075

时间:2016-04-13 00:37:57

标签: sql vba ms-access access-vba operator-keyword

在我开始之前,我知道这里有一大堆错误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 Statement

我怀疑我引用日期的方式有问题。为了给你全面的图片,下面是三个引用的表:

tblHistory:
tblHistory

tblBooks: tblBooks1 继续: tblBooks2

tblBookTypes: tblBookTypes

我尝试通过直接删除SQL语句来隔离问题。我可以使用像SELECT * FROM tblHistory之类的简单语句来处理它,并为其添加WHERE参数,但是一旦我引入了内连接,我再次得到了3075错误。

有谁知道我哪里出错了?这让我很生气!

1 个答案:

答案 0 :(得分:1)

Access抱怨查询,因为WHERE子句位置错误。

您需要SELECT ... FROM ... WHERE ... INNER JOIN

这样的模式,而不是SELECT ... FROM ... INNER JOIN ... WHERE这种模式

换句话说,将WHERE子句移动到查询语句的末尾。