2011-02-07 35 views
2

我想這是一個簡單的。我有以下聲明:MS Access VBA:可選參數不假定默認值

Public Const TABLE_MY_TABLE As String = "my_table" 

Sub reloadProjections(startDate As String, endDate As String, _ 
         Optional tableName As String = TABLE_MY_TABLE) 

    'Processing occurs here 

End Sub 

出於某種原因,在未提供可選的參數,表名不承擔TABLE_MY_TABLE的默認值。當你用調試器完成這一步時,TABLE_MY_TABLE被設置爲「my_table」,tableName是一個空字符串。有誰知道爲什麼?

回答

1

它適用於我。你打電話過得怎麼樣?嘗試說:

reloadProjections date(),date() 
+0

好悲傷 - 我感到啞巴! :)是的,它工作正常。我正盯着代碼的錯誤。它正在傳遞參數(不按照我的假設使用默認值)並且拼寫錯了參數名稱,所以它傳遞了一個空字符串。鬆散型語言的樂趣。感謝您指點我正確的方向。 – Adam

+5

呃,什麼?鬆散類型?如果你打開OPTION EXPLICIT,你將無法編譯帶有拼寫錯誤的變量名的代碼。這是補救措施Access - 您還可以在所有模塊中使用OPTION EXPLICIT。 –