Я новичок в VBA, поэтому, пожалуйста, извините за любой словарный запас.Моя функция - это очень простой оператор if.Отлично работает при отладке, но когда я вызываю его из своего запроса, я получаю страшную ошибку «неопределенная функция в запросе».Вот как я называю это из моего запроса: color2: ItemColor ([Color]) .Цель состоит в том, чтобы взять инвентарный идентификатор и вытащить цвет на основе идентификационного кода.Эта функция будет в конечном итоге расширена для большого количества цветов (более 7), поэтому я не могу использовать функцию iif в запросе.Сначала я хотел протестировать VBA, используя всего несколько вариантов цвета.
Вот мой код:
Public Sub ItemColor()
If [Color] = "01" Then
MsgBox "natural"
Else
MsgBox "shell"
End If
End Sub
[Цвет] - это поле в том же запросе. [Цвет] - это строка, которая была извлечена из поля идентификатора с помощью функции Mid.Может ли эта функция vba работать на таком поле?
Может ли это быть потому, что я использую msgbox?Я пытался использовать Dim, (см. Код ниже), но он все еще не работал.Может быть, у меня был неправильный синтаксис?
Public Sub ItemColor()
Dim appearance As String
If [Color] = "01" Then
appearance "natural"
Else
appearance "shell"
End If
End Sub