2010-01-12 4 views
0

У меня есть следующее выражение в запросе на доступ к MS Access, где некоторые из этих значений могут быть нулевыми, и несмотря на то, что они были переведены в функцию Decimal и Not Zero (NZ), я все равно получаю ошибку переполнения ,MS Access Overflow - не разрешен

Надеюсь, кто-то может помочь мне найти ошибку?

Sum(Cdec(Nz([TotalPrice]/([tbl_ArticlesPerOrder]![Amount]*[Total])*[tbl_ArtikelRemoveFromSawList]![Amount]),0)) 

EDIT: Удаление деления TotalPrice удаляет переполнение. Поэтому я подозреваю, что деление на 0. Любой способ справиться с этим?

+0

Вы знаете, вы действительно только нужно размещать этот вопрос один раз. Вы получили гораздо лучшие ответы в другом месте. –

ответ

2

Я попытался бы посмотреть, можете ли вы построить IFf заявление в пределах вашей суммы для обработки деления на ноль.

например.

IIf([tbl_ArticlesPerOrder]![Amount]*[Total])=0,0,[TotalPrice]/([tbl_ArticlesPerOrder]![Amount]*[Total]) 

MS LINK: Avoiding divide by zero errors in Access

(Под редакцией на основе комментариев Кевы)

+0

Я сделал именно это, а затем снова получил ошибку переполнения. Теперь я делаю этот расчет через VBA, и я получаю ошибку несоответствия типа. Есть идеи? –

+2

Вышеуказанная функция проверила неправильную часть фракции, вам нужно проверить, что ([tbl_ArticlesPerOrder]! [Amount] * [Total]) равно 0 [TotalPrice]. Это все еще ошибка, если вы это сделаете? –

+0

жаль, да, хорошо заметили Кев. – kevchadders