Вы можете написать скрипт VBA для анализа входных данных и выполнения любых необходимых вычислений. Это может быть вызвано событием BeforeUpdate поля несвязанной формы.
Шаги:
- Создайте поле с именем Field1 для вычисленного значения (привязанного к соответствующему полю базы данных).
- Добавьте несвязанное поле к форме и назовите его Input1.
- В представлении «Дизайн» щелкните правой кнопкой мыши Input1 и выберите «Свойства». В разделе «События» -> «Перед обновлением» нажмите кнопку «...».
- Вставьте написанный мной код VBA (ниже).
- Сохраните изменения и закройте редактор VBA.
- Вернитесь в представление формы и введите выражение в поле Input1. Когда вы выходите из поля, выражение будет оценено, и значение появится в Field1.
Обратите внимание, что по соображениям безопасности и / или целостности данных вам может потребоваться санировать вводимые пользователем данные, прежде чем оценивать их как выражение. Детали «как» и «почему» выходят за рамки исходного вопроса.
Private Sub Input1_BeforeUpdate(Cancel As Integer)
' TO-DO: Validate/sanitize input as necessary for security & validity;
' Exit Sub prior to the Eval() if we see something we don't like
Dim result As Variant
result = Eval(Input1.Value) ' Evaluate the contents of Input1
If IsNumeric(result) Then Field1 = result ' Save any numeric result to Field1
End Sub