在sql ms-Access-2010中使用模块

时间:2018-01-08 07:11:34

标签: sql vba access-vba ms-access-2010

我在我的模块中定义了一个过程,返回数据库的路径,我想在我的sql查询中使用该路径。

模块中的程序:

Public Function pathOfBillingSoftware() As String

    pathOfBillingSoftware = """path"""

End Function

我在sql查询中使用上面的函数:

SELECT *
FROM tableName IN  pathOfBillingSoftware();

它给了我错误:"来自"中的错误

但是当我在vba代码中使用它时,它工作正常

a = pathOfBillingSoftware()

  sql = "INSERT INTO tableName  " & _
     "IN " & a & _
    " SELECT * FROM tableName"

    currentdb.Execute sql

任何解决方案?

1 个答案:

答案 0 :(得分:2)

这是动态SQL。您似乎已经找到了解决方案:使用VBA代码。您只能使用函数在静态SQL中返回值。

如果要返回运算符或其他不是标准值的东西,则需要使用动态SQL,因此需要使用VBA。

如果需要,您可以通过VBA创建查询,但请注意,一旦创建它们,它们就是静态的。

使用您的函数创建查询的示例代码

CurrentDb.CreateQueryDef "MyQuery", "SELECT * FROM tableName IN " & pathOfBillingSoftware();