MS-Access Change命令行参数vba

时间:2015-01-03 21:07:30

标签: ms-access access-vba ms-access-2007

我正在打开一个包含/ cmd参数的快捷方式的数据库。它将加载启动表单(登录屏幕)并检查命令行参数。如果已设置,则会将其移动到其他形式。在这个不同的形式是登录按钮。单击该按钮后,将返回登录屏幕。但是,登录屏幕会查找命令行参数并直接返回上一个表单。一个永无止境的循环。所以,我想要做的是以编程方式更改命令行参数。我试图把它设置为空,null,“”,0 ......似乎没什么用。

一旦传递了参数,我该怎么办?

1 个答案:

答案 0 :(得分:2)

在Access会话开始后,您无法更改/CMD参数。但我认为你不应该这样做。

确保在Access会话开始时只评估/CMD一次。您可以通过将启动逻辑从表单移动到自定义函数并从 AutoExec 宏调用该函数来实现。

Public Function StartUp()
    If Len(Command) > 0 Then
        ' the VBA Command() function returns the command 
        ' line /CMD argument text;
        ' assume it is a form which should be opened instead of frmStart
        DoCmd.OpenForm Command
    Else
        DoCmd.OpenForm "frmStart"
    End If
End Function

考虑改进该代码以确保Command()返回的文本引用数据库中实际存在的表单。

然后使用 AutoExec 宏的RunCode操作来调用StartUp()

AutoExec macro with RunCode action calling custom function

最后,将数据库的显示表单属性设置为(无)