在 sql ms-Access-2010 中使用模块
to use module in sql ms-Access-2010
我在我的模块中定义了一个过程,返回数据库的路径,我想在我的 sql 查询中使用该路径。
模块中的过程:
Public Function pathOfBillingSoftware() As String
pathOfBillingSoftware = """path"""
End Function
我在 sql 查询中使用上面的函数:
SELECT *
FROM tableName IN pathOfBillingSoftware();
给我的错误是:"error in from clause"
但是当我在 vba 代码中使用它时,它工作正常
a = pathOfBillingSoftware()
sql = "INSERT INTO tableName " & _
"IN " & a & _
" SELECT * FROM tableName"
currentdb.Execute sql
有什么解决办法吗?
这是动态的 SQL。您似乎已经找到了解决方案:使用 VBA 代码。您只能将函数用于 return 静态 SQL 中的值。
如果你想要return运算符或其他非标准值的东西,你需要使用动态SQL,因此需要使用VBA.
如果需要,您可以通过 VBA 创建查询,但请注意,一旦创建,它们就是静态的。
使用您的函数创建查询的示例代码
CurrentDb.CreateQueryDef "MyQuery", "SELECT * FROM tableName IN " & pathOfBillingSoftware();
我在我的模块中定义了一个过程,返回数据库的路径,我想在我的 sql 查询中使用该路径。
模块中的过程:
Public Function pathOfBillingSoftware() As String
pathOfBillingSoftware = """path"""
End Function
我在 sql 查询中使用上面的函数:
SELECT *
FROM tableName IN pathOfBillingSoftware();
给我的错误是:"error in from clause"
但是当我在 vba 代码中使用它时,它工作正常
a = pathOfBillingSoftware()
sql = "INSERT INTO tableName " & _
"IN " & a & _
" SELECT * FROM tableName"
currentdb.Execute sql
有什么解决办法吗?
这是动态的 SQL。您似乎已经找到了解决方案:使用 VBA 代码。您只能将函数用于 return 静态 SQL 中的值。
如果你想要return运算符或其他非标准值的东西,你需要使用动态SQL,因此需要使用VBA.
如果需要,您可以通过 VBA 创建查询,但请注意,一旦创建,它们就是静态的。
使用您的函数创建查询的示例代码
CurrentDb.CreateQueryDef "MyQuery", "SELECT * FROM tableName IN " & pathOfBillingSoftware();