- ベストアンサー
アクセスのフィールドで<>
アクセスのクエリで、フィールド1に「0」以外のものは「フィールド2」に1と返すために、 クエリのフィールド2の式に、「式1:([フィールド1]<>0)」と記載すると、 -1とマイナス表示になってしまう理由が理解できません。 参考になるようなURLがあればお教えください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
蛇足ですが、Excelのセル式の「比較式」では、真は「1」を、偽は「0」を返します。 ExcelとAccessでは「真を表す値」が異なるので注意が必要です。 一般の言語では「真は-1」の方が圧倒的に多いです。 「-1」は、コンピュータ内部では「2進数で、すべてのビットが1になっている値」なので、この方が都合が良いのです。
その他の回答 (3)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
http://msdn.microsoft.com/ja-jp/library/dya2szfk(v=vs.90).aspx 書かれている式は、比較演算子を用いた論理式(Boolean 式)です。そして、論理式の値を論理値と言います。論理値は、真(True、-1 or 1)と偽(0)のいずれか。 (フィールド1]<>0) この論理式で-1 と表示されるということは、論理式 [フィールド1]<>0 の値が真、つまり<[フィールド1]の値は0以外>ということ。
お礼
エクセルでは1なのでマイナスになる理由が分かりませんでした。ありがとうございます。
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
>-1とマイナス表示になってしまう理由が理解できません。 Accessの「比較式」では、真は「-1」を、偽は「0」を返します。 なので 式2: 1<>2 と書くと、常に真なので[-1」になります。 式1:-([フィールド1]<>0) か 式1:Iif([フィールド1]<>0,1,0) と書きましょう。
- ppyama
- ベストアンサー率12% (48/399)
この式では「1」を返す記述がない True:0 False:-1 と認識してるのかな? (例) 式1:IIf([フィールド1]<>0,1,9)
お礼
アクセスではマイナス表示になることをしりませんでした! ありがとうございます!