• ベストアンサー

アクセスのフィールドで<>

アクセスのクエリで、フィールド1に「0」以外のものは「フィールド2」に1と返すために、 クエリのフィールド2の式に、「式1:([フィールド1]<>0)」と記載すると、 -1とマイナス表示になってしまう理由が理解できません。 参考になるようなURLがあればお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

蛇足ですが、Excelのセル式の「比較式」では、真は「1」を、偽は「0」を返します。 ExcelとAccessでは「真を表す値」が異なるので注意が必要です。 一般の言語では「真は-1」の方が圧倒的に多いです。 「-1」は、コンピュータ内部では「2進数で、すべてのビットが1になっている値」なので、この方が都合が良いのです。

kakuninn1111
質問者

お礼

アクセスではマイナス表示になることをしりませんでした! ありがとうございます!

その他の回答 (3)

回答No.4

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以外>ということ。

kakuninn1111
質問者

お礼

エクセルでは1なのでマイナスになる理由が分かりませんでした。ありがとうございます。

回答No.2

>-1とマイナス表示になってしまう理由が理解できません。 Accessの「比較式」では、真は「-1」を、偽は「0」を返します。 なので 式2: 1<>2 と書くと、常に真なので[-1」になります。 式1:-([フィールド1]<>0) か 式1:Iif([フィールド1]<>0,1,0) と書きましょう。

  • ppyama
  • ベストアンサー率12% (48/399)
回答No.1

この式では「1」を返す記述がない True:0 False:-1 と認識してるのかな? (例) 式1:IIf([フィールド1]<>0,1,9)