• ベストアンサー

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

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

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8526/19383)
回答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なのでマイナスになる理由が分かりませんでした。ありがとうございます。

  • chie65535
  • ベストアンサー率43% (8526/19383)
回答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)

関連するQ&A

  • アクセス・クエリーでのフィールド内の関数式について

    アクセス・クエリー結果の中に"合計"というフィールド(値)があるのですが、そのフィールドを基に隣のフィールドに値がマイナスであれば、反映する式を組みました。 計算結果は、ちゃんと反映されるのですが、結果の形式がどうもテキスト表示になっているみたいです。 数値に置き換えるような式も組んでみたものの、なかなかうまくいかないので、ご質問させていただきました。 よろしくお願いします。

  • Accessのフィールドサイズに関する素朴な質問です。

    Accessのテーブルで、フィールドサイズに[単精度浮動少数型]を設定して、そのフィールドを使って、クエリで演算フィールドを作成します。 単純な引き算でも、びっくりするくらい小数点以下の桁が表示されるのですが、どうしてなのでしょう? [単精度浮動少数型]より[倍精度浮動少数型]を使用したほうがよいと聞きましたが、設定の桁数の違い以外に、理由があるのでしょうか? Access初心者にも理解できるよう、ご解答いただけますでしょうか。 WindwosXP,Access2002を使用しております。

  • Access フィールド名の数式について

    よろしくお願いします。 Accessのクエリのフィールド名に関する質問です。 クエリのフィールド名に以下のように設定しました。 式1:Foms!フォーム1![項目名] Or Foms!フォーム1![項目名2] すると、式1はすべて「-1」という表示になってしまいました。 フィールド名にOR関数は使えないのでしょうか? フォーム1の「項目名」と「項目名2」をそれぞれ表示させたい場合には どのような方法があるのでしょうか?

  • ACCESSのフィールドに記述する式について

    次のソフトを使っています。 ACCESS 2003 Windows7 次のことをやりたいです。 1つのレコードに業者が20フィールドほど並んでいるテーブルを作成しました。 クエリのフィールドに式を1つ追加しまして、1レコードの中で 業者フィールドにNullが1つ以上あるかないかを調べる式を 作りたいです。 1つも無ければ、値を表示し、1つ以上ある場合は値を表示しないという ことをやりたいのです。 そもそも、このようなことができるのかもわかりませんが、 どなたかお助けくださいませ。 よろしくお願いいたします。

  • 【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです

    【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです。 Access2003を使っています。 困っている状況は以下のようなもです。 ■テーブル1  ・フィールド1 ■クエリ1  ・フィールドA:フィールド1  ・フィールドB:[フィールドA]   【抽出条件】>=10 このような条件で、クエリを実行すると、 「パラメータの入力 フィールドA」というダイアログが立ち上がってしまいます。 上記載のクエリ1でフィールドAの[]は自然についてしまうのではずせません。 今はもう一つクエリを作る事でこの状況はなんとかしましたが、フィールドに別名をつける毎にクエリを作るとクエリの数が多くなってしまうので困っています。 クエリでフィールドに別名をつけた場合は、そのクエリ上でその別名を使って抽出をかけることはできないのでしょうか? よろしくお願いします。

  • Access2003 クエリ フィールドの比較

    使用しているソフトはAccess2003になります。 テーブル1とテーブル2からデータ(フィールド)を表示してクエリを作成しました。 クエリのフィールド名は以下のようになります。 1、型式(テーブル1) 2、機番(テーブル1) 3、有効期限(テーブル1) 4、測定基準値(テーブル1) 5、機番(テーブル2) 6、紐づけ(テーブル2) ※ 使用者名が記載 テーブル1_機番とテーブル2_機番を比較して同じならば並び変える。 フィールドもしくは抽出条件にどのような式を記入すればよいでしょうか。 データベースソフトの扱いは初心者になります、宜しくお願いします。    

  • Access2003 削除クエリで式1フィールドがドンドン作成される

    Access2003で削除クエリを作成しました。 抽出条件に「Aフォーム」内のトグルボタン「チーム1」(オプショングループ名=商品区分)をクリックした時に、[商品番号]が100より小さいものを、トグルボタン「チーム2」をクリックした時には、[商品番号]が100以上のものを抽出するよう入力しました。 【クエリデザインビューの状態↓】 フィールド  | [商品番号] | AA: [forms]![Aフォーム]![商品区分] 抽出条件 | < 100   | 1 または  | >= 100  | 2 一応上記で削除クエリは思うように実行できたのですが、このクエリを閉じてまた開くとフィールドAAと同じ内容で『式1:』フィールドが作成されてしまいます。また閉じて開くと、同じ内容で『式2:』が、次は『式3:』が…とドンドンと作成されてしまいます。 Access2003以外のAccessでは「式」フィールドは増えなかったです。 この『式~:』フィールドが勝手に作成されないようにするには、どうすればいいのでしょうか?もしくは、最初の削除クエリの作り方がおかしいのでしょうか? 教えて頂きたく、よろしくお願いします。

  • アクセスのクエリ フィールドの合計

    フィールドの合計 アクセスのクエリでいくつかのフィールドの合計を出そうとして クエリのフィールドに以下の式をいれております。 ⇒合計:([A])+([B])+([C]) (例えば[A][B][C]のフィールドの合計を出すとして) しかし、[A]の値が1、[B]の値が2、[C]の値が2と入っている場合は5と合計値が当然でますが 例えば[C]のフィールドが空欄の場合、合計値欄が空欄で表示されます。 非常に簡単な質問かと恐縮ですがおしえてください!

  • アクセス:フィールドが非表示で消えるのを防止する式

    アクセス2010を使っています。 アクセスのクエリのデザインにおいて、あるフィールドAで並び替えも抽出条件もなく非表示の状態にして、結果を開き、また閉じると、そのフィールド自体が消えます。 これを防止したいのですが、並べ替えは必要ないので、抽出条件式を何か使いたいと考えました。抽出条件式はどのようなものが無難でしょうか。「is null」や「is not null」は試しましたが、だめなようでした。これ以上いろいろと試すうちにクエリ自体を妙なことにしてしまいそうで悩んでいます。 フィールドAに入るのは短い日本語の文字列です。人名です。 フィールドAは、表示すると後の段階で困るのですが、ある別のフィールドBの条件式の材料(?)としてデザインの中に開いておかなければならないようです。完全に消してしまうとフィールドBがエラーになります。しかし(並び替えと条件式なしで)非表示にすると、フィールドAが消えてしまいます。 初心者ゆえに不首尾な質問と思いますので、必要があれば補足いたします。どうぞ上級者の方、教えてください。

  • 【Access】クエリのフィールドに別名を付けたいのですが

    クエリのフィールドに別名を付けたいのですが、うまくいきません。 具体的に言うと、フィールドの部分に計算式を書くと『式1:1+2』と表示 されますよね。この『式1』の部分を『A - B:1+2』として保存し、もう 一度開くと『A-B:1+2』と半角スペースが消えてしまいます。 どうすれば『A - B:1+2』と表示させることができるのでしょうか。

専門家に質問してみよう