- ベストアンサー
チェックボックスの値がマイナス表示に
mysqlに保存専用のテーブルがありそこにすべてのデータを保存していますが、チェックボックスがtrue の状態で保存するとそのテーブルのフィールドにはチェックボックスではなく[-1] と表示されてしまいます。 falseの場合は[0]で表示されています。 そのテーブルはmysqlのサーバーにあるのでフォームとの関連はリンクテーブルとなっています。 どなたかこのリンクテーブルを編集したり、このマイナス表示を普通の数字もしくはtrue にする方法をご存知ありませんか? 集計ができなくて困っています。 ちなみにwindows2000でoffice2000です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DCount()を使用してみてはどうでしょう。 基本的な使い方は DCount([フィールド名],[テーブル名],[カウントする条件]) となります。具体的には =DCount("FIELD", "TABLE", "FIELD = -1") です。 また、フィールドが文字列型だった場合は =DCount("FIELD", "TABLE", "FIELD = '-1'") と、なります。 これでもだめな場合は =sum([フィールド名]) * (-1) でしょうか(^^ゞ
その他の回答 (2)
- tksoft
- ベストアンサー率36% (99/273)
>レポートで集計をするとマイナス表示になって見栄えが悪いので・・・ とのことですが、クエリーで集計したものをレポートで表示しているのでしょうか?そして、その集計行でTRUEのカウントに「合計」を使ったりしていませんか?もしそうであれば、その集計行を「カウント」にし、抽出条件をTRUEにしてみてはどうでしょう。 もしこれで不都合があるようでしたら、もっと簡単な方法として、レポートに表示する際に-1を掛けてみてはどうでしょう。
補足
すいません。素人なもので、、、 チェックボックスの値のフィールドはテーブル自体のフィールドがマイナスになってしまってるんで、そのテーブルを元にクエリとかレポートを作成してもマイナスのまま表示されてしまうんです。 その状態のレポートの集計で =sum([フィールド名]) を =count([フィールド名])に変えてもやっぱり -1も0 もカウントされてしまい、抽出できませんでした。 =count(-1)とかも試したんですけど、できませんでした。 もうひとつ集計用にリンクさせてないテーブルを作ったほうがいいのでしょうか? それとももっと簡単な方法ってありませんか? ほんとに何度もすいません。
- tksoft
- ベストアンサー率36% (99/273)
Microsoft AccessではTrueが-1,Falseが0と定義されていてチェックボックスを直接テーブルのフィールドに連結させて値を入力すると、必ずどちらかの値が入ってしまいます。 これを避ける方法としては・・・チェックボックスを直接テーブルのフィールドに連結させず、チェックボックスの「更新後処理」等で指定のフィールドに指定の値を入力する・・・というのはどうでしょう。もちろんこの場合はデータの表示の際、フィールドの値を調べ、その値によってチェックボックスをON/OFFする必要がありますが・・・ でも・・・こんな面倒なことをしなくても、チェックボックスはTrueかFalseかのどちらかの値しか持たない(一応、どちらでもないNULLというのもありますがこれは値じゃない)ので 別に0と-1でも区別さえ出来たら問題ないようにおもわれますが・・・。 ちなみに、これで「集計ができなくて困っています。」とありますが、どんな集計をしてるんでしょう?
補足
早速の回答ありがとうございます。 集計ができなくて困っているというのはちょっと大げさでしたが、レポートで集計をするとマイナス表示になtって見栄えが悪いので何とか避けることができるかどうかを相談させていただきました。 こういう場合は通常どうされていますか? よい方法があればご伝授お願いいたします。
お礼
お礼が遅くなってすいません。 =sum(フィールド名)*(-1)にて何とかできました。 どうもありがとうございました。