Во-первых, я бы предложил заключить каждое из полей в выражение Nz
, а не выборочно заключать вычисленные выражения в выражения Nz
, то есть:
=
(
(
Nz([DeltaDetailCB1],0)+
Nz([DeltaDetailCB2],0)+
Nz([DeltaDetailCB3],0)+
Nz([DeltaDetailCB4],0)+
Nz([DeltaDetailCB5],0)+
Nz([DeltaDetailCB6],0)+
Nz([DeltaDetailCB7],0)+
Nz([DeltaDetailCB8],0)+
Nz([DeltaDetailCB9],0)+
Nz([DeltaDetailCB10],0)+
Nz([DeltaDetailCB11],0)+
Nz([DeltaDetailCB12],0)+
Nz([DeltaDetailCB13],0)+
Nz([DeltaDetailCB14],0)+
Nz([DeltaDetailCB15],0)+
Nz([DeltaDetailCB16],0)
) *
(1+(Nz([FehlleistungCB],0)*0.01))
)
+
(
(
Nz([DeltaDetailAS1],0)+
Nz([DeltaDetailAS2],0)+
Nz([DeltaDetailAS3],0)+
Nz([DeltaDetailAS4],0)+
Nz([DeltaDetailAS5],0)+
Nz([DeltaDetailAS6],0)+
Nz([DeltaDetailAS7],0)+
Nz([DeltaDetailAS8],0)+
Nz([DeltaDetailAS9],0)+
Nz([DeltaDetailAS10],0)+
Nz([DeltaDetailAS11],0)+
Nz([DeltaDetailAS12],0)+
Nz([DeltaDetailAS13],0)+
Nz([DeltaDetailAS14],0)+
Nz([DeltaDetailAS15],0)+
Nz([DeltaDetailAS16],0)
) *
(1+(Nz([FehlleistungAS],0)*0.01))
)
+
(
(
Nz([DeltaDetailOF1],0)+
Nz([DeltaDetailOF2],0)+
Nz([DeltaDetailOF3],0)+
Nz([DeltaDetailOF4],0)+
Nz([DeltaDetailOF5],0)+
Nz([DeltaDetailOF6],0)+
Nz([DeltaDetailOF7],0)+
Nz([DeltaDetailOF8],0)+
Nz([DeltaDetailOF9],0)+
Nz([DeltaDetailOF10],0)+
Nz([DeltaDetailOF11],0)+
Nz([DeltaDetailOF12],0)+
Nz([DeltaDetailOF13],0)+
Nz([DeltaDetailOF14],0)+
Nz([DeltaDetailOF15],0)+
Nz([DeltaDetailOF16],0)
) *
(1+(Nz([FehlleistungOF],0)*0.01))
)
Я подозреваю, что значениеВозвращенная функцией Nz
интерпретировалась как строка с оператором сложения (+
), а затем использовалась для объединения строки, возвращаемой каждым выражением Nz
.
Если мой код дает тот же результат,Вы можете принудительно привести тип данных, заключив все выражение в CDbl()
.
Однако я должен сказать, что повторение этого большого количества полей в одном выражении - это красный флаг, что у вас плохо спроектированная база данных.