2011-07-05 8 views
0

2つのクロスタブクエリ(構造については以下を参照)があります。ものすごく単純。最初は、私の会社が各都市で所有している各建物のタイプの合計を取り、2番目の都市は都市全体でタイプ別にALL(全社ではない)建物の合計を取ります。MS Access - ゼロ除算+ Nz()

私がしたいのは、パーセンテージを計算することですが、私は多くの問題を抱えています。私はかなり近いと思うが、何らかの理由で私のNz()機能が正しく動作していない。私は "ゼロ除算エラー"を取得し続けます。ここに私のパーセントの式があります:

DCount(
    "[ID]","[Company_owned]")/DCount(
    "[ID]","[City_Totals]", "[Year_built]=2000" & Nz(Year_built, "null") 
) 
) 

ここに私の十字タブのクエリのレイアウトです。

1)

 
╔═══════════════════════════════════════════════════════════════════════════════╗ 
║    Building type:   1  2  3  4  5  6  7 ║ 
╠═══════════════════════════════════════════════════════════════════════════════╣ 
║  City  Atlanta     0  7  0  2  3  4  9 ║ 
║    New York    0  0  2  5  7  8  2 ║ 
║    San Francisco   1  1  2  3  4  5  6 ║ 
╚═══════════════════════════════════════════════════════════════════════════════╝ 

2)

 
╔═══════════════════════════════════════════════════════════════════════════════╗ 
║    Building type:   1  2  3  4  5  6  7 ║ 
╠═══════════════════════════════════════════════════════════════════════════════╣ 
║  City  Atlanta     8  9  3  2  3  7  9 ║ 
║    New York    0  0  2  7  7  9  2 ║ 
║    San Francisco   3  1  9  3  5  5  8 ║ 
╚═══════════════════════════════════════════════════════════════════════════════╝ 

私はエラー「ゼロによる除算」取得していますなぜ誰かが私に教えてくださいすることができ、これは、計算するための健全な戦略があるかどうか2つのクロスタブのクエリのデータからのパーセンテージ(私はレポート内のすべてのパーセンテージ計算を行うことも考えましたが、少し面倒です)

+0

http://www.sensefulsolutions.com/2010/10/format-text-as-table.htmlを使用して表をフォーマットすることができます。 – Tomalak

答えて

0

私はここで少し推測しています

DCount("[ID]","[Company_owned]")/_ 
DCount("[ID]","[City_Totals]", "[Year_built]" & _ 
    IIf(IsNull(Year_built), " Is Null", "=" & Year_built)) 

注:私はあなたが探しているものだと思うtはより多くのこのようなもので、行継続文字(_)をオフのままにして、クエリでこれをやっている場合は、単に一緒にそれぞれの行を実行します。

私はあなたが書いた2番目の基準が次のようなものであると評価していたと考えています:[Year_built]=20002008または[Year_built]=2000nullです。

2000を残しても、あなたの質問ではちょうどタイプミスであっても、[Year_built]=nullはまだあなたが期待しているようにはなりません。その場合はIs Null声明が必要です。