Я представляю, что это просто. У меня есть следующие объявления: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
По какой-то причине, когда дополнительный аргумент не входит в комплект, TABLENAME не принимает значение по умолчанию TABLE_MY_TABLE. Когда вы проходите это с помощью отладчика, TABLE_MY_TABLE устанавливается в «my_table», а tableName - пустая строка. Кто-нибудь знает, почему?
Хорошее горе - я чувствую себя глупым! :) Да, отлично работает. Я смотрел на неправильный патрон кода. Он передавал аргумент (не используя значение по умолчанию, как я предполагал), и я ошибся в имени аргумента, поэтому он передавал пустую строку. Радости свободно-типизированного языка. Спасибо, что указал мне в правильном направлении. – Adam
Э-э, что? Неверно напечатан? Если вы включили OPTION EXPLICIT, вы не сможете скомпилировать код с именами с ошибками. Это исправление доступа - вы также используете OPTION EXPLICIT во всех своих модулях. –