我正在使用VBA在Access中工作。我正在尝试执行包含docmd子句的语句。该语句将包含一个变量。该变量将是docmd.openform或docmd.openquery。我无法使用IF或CASE来确定哪个前缀。
我已经尝试了以下方法:
tmpStr = docmd.openform "blah"
docmd.execute tmpStr
我需要完整的docmd语句在变量中。我只是不知道如何执行该变量。
感谢您的所有帮助!
答案 0 :(得分:0)
在该线程中讨论了类似的想法:Execute VBA code from string
...但是我认为这不会像您希望的那样工作...我不认为DoCmd具有“执行”功能;有Database.Execute,但这是针对数据库引擎操作的,无法打开用户窗体。如果您尝试根据某种条件打开用户窗体或运行查询,似乎必须采用其他方法来确定代码应采取的操作。您能否提供一些为什么不能使用IF或SELECT CASE的详细信息?
答案 1 :(得分:0)
我不认为您正在寻找什么,但是使用subs和Application.Run方法的解决方法呢?
Sub Test()
Application.Run "OpenForm", "Form1"
Application.Run "OpenQuery", "Query1"
End Sub
Sub OpenForm(ByVal formName As String)
DoCmd.OpenForm formName
End Sub
Sub OpenQuery(ByVal queryName As String)
DoCmd.OpenQuery queryName
End Sub