在VBA中执行包含docmd的变量

时间:2018-06-21 14:47:11

标签: vba variables

我正在使用VBA在Access中工作。我正在尝试执行包含docmd子句的语句。该语句将包含一个变量。该变量将是docmd.openform或docmd.openquery。我无法使用IF或CASE来确定哪个前缀。

我已经尝试了以下方法:

tmpStr = docmd.openform "blah"
docmd.execute tmpStr

我需要完整的docmd语句在变量中。我只是不知道如何执行该变量。

感谢您的所有帮助!

2 个答案:

答案 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