MS-Access 更改命令行参数 vba

MS-Access Change Command Line Argument vba

我正在使用包含 /cmd 参数的快捷方式打开数据库。它将加载启动表单(登录屏幕)并检查命令行参数。如果已设置,它将把它移动到不同的形式。在那个不同的表单上是一个登录按钮。当您单击该按钮时,您将返回到登录屏幕。但是,登录屏幕会查找命令行参数并直接返回到之前的表单。永无止境的循环。所以,我想做的是以编程方式更改命令行参数。我试过将其设置为空、null、""、0...似乎没有任何效果。

论点通过后我能做些什么来改变它?

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():

最后将数据库的Display Form属性设置为(none).