2015-12-23 3 views
1

Я использую Access 2000 и пытаюсь вызвать функцию функции VBA с помощью действия RunCode. Как использовать Enum в качестве аргумента для вызова этой функции?Использование Enums в качестве аргументов в vba

(я упростил код в следующем примере, поэтому мы можем сосредоточиться на важных частей)


Enum находится в модуле с именем Configuration_Enum:

Public Enum configuration 
    val1 = 1 
    val2 = 2 
End Enum 

Функция, использующая это перечисление, находится в модуле Configuration_Module:

Public Function getConfiguration(config As configuration) As Int 
    getConfiguration = config 
End Funtion 

Я могу вызвать функцию с помощью Enum в качестве аргумента без проблем с помощью VBA:

getConfiguration(Configuration_Enum.val1) 


Теперь я хочу, чтобы сделать эту функцию вызова с помощью VBA (с помощью действия RunCode) , но это не работает:

getConfiguration([Modules]![Configuration_Enum].[val1]) 

к сожалению, я использую немецкую версию Access и нет ошибок Id, так что я могу только дать вам мое перевод сообщения об ошибке:

Объект не содержит объект автоматизации 'val1'.

Вы попытались выполнить процедуру Visual Basic для установки Object-Property. Однако процессы автоматизации не имеют доступа к этому свойству.


ли, что я пытаюсь достичь даже возможно или я просто doint это не так?

ответ

1

Я уверен, что вы не можете. Ваши варианты:

Хорошо: избавиться от макроса и сделать это в VBA.

Мех: использовать значение из перечисления в качестве параметра, т.е. getConfiguration(1)

+1

Правда. Вы также не можете использовать Enum в выражениях SQL запроса. Лучший совет - пропустить макросы. Там даже есть мастер для преобразования их в VBA. – Gustav

Смежные вопросы