2012-09-24 59 views
1

我在單個表上執行選擇,並且我需要在一組相關字段中總計值,我在查詢生成器的「字段」部分中包含此值。如果任何字段爲空,則訪問調用失敗

總價值: [FIELD1] + [FIELD2] + [FIELD3] + [FIELD4] + [字段5] + [字段6] + [字段7]

當我去「表視圖'的查詢,我只得到一個計算所有指定的字段都有值?但是,如果所有的領域都有一個價值,那麼它就完美了

在嘗試查看這是否是真實的情況下,我將每個字段插入到查詢中,並且我得到一個缺少值的表。

顯然不是我期待的!

我錯過了一些明顯的東西嗎?它與字段中的'null'值有關嗎?

請幫助,在此先感謝

大衛

回答

4

你需要用每個字段與NZ(場,0)

TotalValue : Nz([FIELD1],0)+Nz([FIELD2],0)+Nz([FIELD3],0)+Nz([FIELD4],0)+ 
Nz([FIELD5],0)+Nz([FIELD6],0)+Nz([FIELD7],0) 

也可以設置表一中如果不允許爲null,則爲數字值的零默認值。

+0

+1默認零是避免額外功能的好主意 –

-1

Remu提供的答案讓我得到了正確的答案。

我嘗試了Remu的解決方案,並且收到了一條錯誤消息,關於一個額外的','並不是它應該在的位置。

因此,一個小的修改的代碼,現在它讀取...

NZ([DEBITN1D1])+ NZ([DEBITN2D1])+ NZ([DEBITN3D1])+ NZ([DEBITN4D1 ])+ NZ([DEBITN5D1])+ NZ([DEBITN6D1])+ NZ([DEBITN7D1])

我得到安寧REMU一個+1,因爲我不知道這個特定的功能沒有,也不可能我在任何地方找到它!他/她的迴應也使我找到了解決方案的正確途徑。

大衛

編輯:

所以響應的意見,我衷心同意額外的信息應包括在內。然而,當我在方法中有額外的變量時,我看不到爲什麼代碼在我的情況下失敗的原因?

鑑於此,我發現很難選擇我的答案作爲正確的答案(即使Remou的原始失敗並且我的代碼沒有)。

我不知道這是因爲我在查詢生成器的字段細節中使用函數(而不是在報表或頁面上的VB模塊中使用它)。有沒有人有任何方法可以測試以查看原因是什麼?

+1

這不夠好,你應該有'Nz(value,value if null)'參數。你可能會遇到麻煩。順便說一下,我發佈的樣本適合我。 – Fionnuala

+1

如果Remou有(雖然我沒有看到它)稍微放錯了一個逗號,那麼最好是**編輯**如果可以,或者添加評論,重新發布不正確的答案版本並不會幫助其他可能正在閱讀的人。 –

+0

我討厭這麼說,但是Remou's的確切代碼並不適合我?它失敗了一些無法解釋的錯誤。但是,修改後(在字段名稱後刪除',0')計算工作。所以我認爲它可能在Access版本中有所不同。正如我所說的,我發佈了這個作爲我的情況的正確答案,但給了Remou一個+1,因爲沒有他/她的輸入,我永遠不會找到nz()函數。 – DaveM

相關問題