|
|
|
| Как бороться в вычисляемом поле со значением - #Ошибка | |
|
| |
|
|
|
| Если причина ошибки NULL то с помощью функции Nz | |
|
| |
|
|
|
| СПАСИБО
=IIf(IsNull(..... | |
|
| |
|
|
|
| IIf(IsError([поле1]+[поле2])=True;"";[поле1]+[поле2]) | |
|
| |
|
|
|
| IsError чё та не стал пахать.... | |
|
| |
|
|
|
| Вот так можно:
Ситуация обычная:
В подчиненной форме создаем скрытое поле [MyTotal], источником данных которого является что то вроде:
=Sum([Всего])
теперь создаем поле в главной форме с источником данных:
=[Название Объекта Подчиненной формы].[Form]![MyTotal]
и все замечательно - при условии что в ПОДЧИНЕННОЙ ФОРМЕ ЕСТЬ ДАННЫЕ
а если их нет - то в поле будет #Ошибка
Приведенная ниже функция как раз и служит для устранения данной неприятности
Пишем в источнике данных:
=FData([Название Объекта Подчиненной формы].[Form]![MyTotal])
и при отсутствии данных в поле будет просто 0 (ноль)
В глобальном модуле создаем функцию:
' Устраняет #Ошибка при отсутствии данных
Function FData(anyVal As Variant) As Currency
On Error GoTo FDataErr
FData = CCur(anyVal)
Exit Function
FDataErr:
FData = 0
Err.Clear
End Function
Пример использования:
Поле1=FData([Поле2])*[Поле3]
Поле4=FData([Поле5])*[Поле6]
Поле5=Поле1+Поле4
Если не использовать эту функцию, то при отсутствии данных в Поле1 или Поле4, Поле5 будет содержать #Ошибка | |
|
| |