2015-01-03 162 views
1

我正在用包含/ cmd參數的快捷方式打開數據庫。它將加載啓動窗體(A登錄屏幕)並檢查命令行參數。如果已設置,則會將其移至其他表單。在不同的表單上是登錄按鈕。當您單擊該按鈕時,您將返回到登錄屏幕。但是,登錄屏幕會查找命令行參數並直接回到以前的表單。一個永無止境的循環。所以,我想要做的是以編程方式更改命令行參數。我試圖設置它爲空,null,「」,0 ...似乎沒有任何工作。MS-Access更改命令行參數vba

一旦通過參數,我該如何改變參數?

+0

@Fionnuala我有一個啓動形式,但有時我希望它以不同的形式開始,所以我使用命令行參數。它的工作原理與我想要的一樣,當試圖進入常規啓動形式時...它仍然設置了命令參數,所以它繼續進入二級表單。 – riley3131

回答

2

訪問會話啓動後,您無法更改/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()返回的文本是指實際上是在你的數據庫中存在的形式。

然後使用的AutoExecRunCode行動呼籲StartUp()

AutoExec macro with RunCode action calling custom function

最後,數據庫的顯示窗體屬性設置爲(無)

+0

我想我可以得到這個工作!謝謝! – riley3131