MS Access 2003 - вычисление текстового поля на форме - PullRequest
0 голосов
/ 18 марта 2010

Допустим, у меня есть два текстовых поля в форме. первый возвращает значение счетчика из оператора SQL или выражения агрегирования домена и т. д. второй делает то же самое с дополнительными параметрами.

Теперь я хочу иметь еще одно текстовое поле (# 3), которое делит одно на другое для очень простого процента. как это для контрольного источника:

=[textbox2]/[textbox1]

это прекрасно работает, если только возвращаемое исходное значение не равно нулю. Если первое возвращаемое значение равно нулю, то второе тоже будет равно нулю, и в идеале 0/0 должно выходить в ноль, но я получаю #Num! строка ошибки в текстовом поле.

Я понимаю, что это еще один странный запрос, но это для формы панели инструментов, которая имеет около 50 из них, и они отлично работают, если я не достигну нуля.

Так есть ли способ, которым я могу установить свойства текстового поля, о которых я могу не знать, чтобы это работало без необходимости писать многочисленные операторы If в коде?

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 марта 2010

Я не вижу, как можно избежать оператора if, когда деление на ноль возможно

=IIf(TextBox1<>0, TextBox2/TextBox1,"N/A")
0 голосов
/ 08 июля 2013

Математически, деление на 0 не определено, но для ваших целей вы можете рассчитать его с помощью:

=IIf([textbox1]<>0;[textbox2]/[textbox1];IIf([textbox2]=0;0;"N/A"))

Это когда textbox1 равен 0, вы проверяете, равен ли textbox2 0. Если это так, верните 0, что вам нужно.

...