Access 2010 построитель выражений
Я хочу, чтобы текстовое поле содержало данные, которые являются вычислением, основанным на 2 других значениях контрольного поля - только если его значение равно нулю (т.е. текущее значение столбца в базе данных равно нулю).
Поэтому я ввел =([control1]*[Control2])/1000 в конструкторе выражений для свойства значения по умолчанию - однако результат всегда показывает, что текстовое поле пустое (даже если control2 и control2 содержат значения).
Как мне этого добиться? Может ли такая операция выполняться только в коде, т.е. в VB??
Спасибо,
Канзас
2 ответа
Я думаю, что вы говорите об элементе управления, связанном с полем в источнике записей формы. И когда базовым полем является Null, вы хотите, чтобы элемент управления загружался с вашим вычисленным значением.
Если эта интерпретация верна, вы можете сделать это из события On Current формы.
If IsNull(Me.txtYourTextBox) Then
Me.txtYourTextBox = (Nz(Me.control1) * Nz(Me.Control2)) / 1000
End If
Это загрузит вычисленное значение в текстовое поле, позволит пользователю изменить его значение при желании и сохранит значение в связанном поле при сохранении записи.
Если поле привязки не равно Null, его значение будет отображаться в текстовом поле без изменения с помощью кода On Current.
Это то, что вы хотите?
Для этого с помощью VBA добавьте событие Form_Load. (Откройте форму в представлении "Дизайн" и в свойствах формы, перейдите на вкладку "Событие", выберите "Процедура обработки события" для "При загрузке" и нажмите...) В этом примере для ссылки на данные таблицы используется [TextField].
Private Sub Form_Load()
TextControl.SetFocus
If IsNull([TextField]) Then
TextControl.Text = ([Control1] * [Control2]) / 1000
End If
End Sub