他们是否可以在SELECT Sql语句中使用声明的VBA变量,如下所示(我有一个名为myTable
的表,我想通过传递声明的字符串myVar
来设置引用的字段:
例如passVar(“英语”)
注意:我使用的是Microsoft Access
Private Function passVar(myVar as string)
Dim db As Database
Dim qdf As DAO.QueryDef
Dim stmnt As String
Set db = CurrentDb()
Set qdf = db.QueryDefs("SelectSubjectQuery")
stmnt = "SELECT [myTable].[myVar] = " &Chr$(34) & myVar & Chr$(34) & _
//other SQL statements go here
qdf.SQL = stmnt
End Function
每次运行查询时,都会出现一个对话框,要求输入mytable.myvar
的值,而不是传递myvar
,即Eglish作为myTable
上的引用字段。
答案 0 :(得分:3)
是的,将SQL语句构建为如下字符串:
stmnt = "SELECT " & [myTable] & "." & [myVar] & " = " &Chr$(34) & myVar & Chr$(34) & _
当代码运行并构建字符串时,VBA应填写MyTable和MyVar的名称。
答案 1 :(得分:1)
stmnt = "SELECT [myTable]." & myVar & _
通过如上所述编写工作(当字符串通过函数传递时不需要等号)。感谢您的见解@rcfmonarch