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是一个空字符串。有谁知道为什么?
好悲伤 - 我感到哑巴! :)是的,它工作正常。我正盯着代码的错误。它正在传递参数(不按照我的假设使用默认值)并且拼写错了参数名称,所以它传递了一个空字符串。松散型语言的乐趣。感谢您指点我正确的方向。 – Adam
呃,什么?松散类型?如果你打开OPTION EXPLICIT,你将无法编译带有拼写错误的变量名的代码。这是补救措施Access - 您还可以在所有模块中使用OPTION EXPLICIT。 –