- 締切済み
Accessのクエリーのゼロデータ行の非表示の仕方
Accessのクエリーのゼロデータの行の非表示の仕方を教えてください。 数値をレコードとする20列がこのクエリーにあるとします。この全て20列の数値レコードがゼロの行はクエリーの結果から外して非表示にしたいのです。 それを達成するために、21列目にABS関数を用いて20列の数値全てを足し算して、抽出条件を>0としました。 どういうわけかこの抽出条件を入れてクエリーを実行すると、パラメタクエリーになってしまい、実行時にダイアログボックスがでてきて何か入力を求められます。 なぜこうなってしまうのかご教示お願いします。 また、一般的に使われているゼロ行非表示の仕方があればそれも教えてください。上のやり方は自分で勝手に考え出したものなので。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 6657
- ベストアンサー率63% (7/11)
このクエリーのテーブルのフィールドの既定値が、0になっているため数字が入っていないところが全て0で表示されているのではないでしょうか?。既定値0を消すと新しいレコードは0は入らなくなります。今あるレコードは更新クエリーで0は全て""に更新してはいかがでしょうか。想像で書いています。
- 6657
- ベストアンサー率63% (7/11)
0だけ表示させない方法はIIF関数で可能ですが、0以外も数値ではなく文字列として表示されます。表示だけで良いのであればこれでOKです。新しいフィールド名: IIf([フィールド名]=0,"",[フィールド名])、で0は表示されなくなります。20のフィールド全てやればですが。
良くありがちな原因は、20ケあるという項目の名前のどれかを間違えていること。あるいは関数の名前を間違えてるかもしれません。 ダイアログボックスにどんな名前のパラメータか書いてありませんか? ゼロの行を抽出しないもうひとつの方法として、抽出条件の行に <>0 と列ごとに書いても良いと思います。
補足
早速の回答ありがとうございました。 仰るとおり間違いの可能性もあると思い、一列だけを=ABS(xxx)で取ってきてテストしましたが、同じ結果でした。。。。