在vba中执行包含docmd的变量

在vba中执行包含docmd的变量,vba,variables,Vba,Variables,我使用VBA在Access中工作。我试图执行一个包含docmd子句的语句。该语句将包含一个变量。变量将是docmd.openform或docmd.openquery。我不能使用IF或CASE来确定哪个前缀 我尝试了以下几点: tmpStr = docmd.openform "blah" docmd.execute tmpStr 我需要变量中包含完整的docmd语句。我只是不知道如何执行这个变量 谢谢你的帮助 本帖讨论了一个类似的想法: …但我认为这不会按你希望的方式工作。。。我不认为DoCmd

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

我尝试了以下几点:

tmpStr = docmd.openform "blah"
docmd.execute tmpStr
我需要变量中包含完整的docmd语句。我只是不知道如何执行这个变量


谢谢你的帮助

本帖讨论了一个类似的想法:


…但我认为这不会按你希望的方式工作。。。我不认为DoCmd有“执行”;有,但这是数据库引擎操作,无法打开用户窗体。如果您试图打开一个userform或根据某些条件运行一个查询,那么似乎必须有其他方法来确定代码应该采取的操作。您能否提供一些关于为什么不能使用IF或SELECT CASE的详细信息

我不认为您正在寻找的是可能的,但是使用subs和方法的解决方案呢


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