• ベストアンサー

Trueについて

再度同じ質問になりますがお尋ねします。 Excelの関数でTrueは「1」でFalseは「0」だと思いますがAccessの場合は違うのでしょうか? Accessのフィルタで、データシートで性別フィールドにはチェックを入れると「男性」チェックを入れないと「女性」というようにしています。 データシートから「フィルタ/並べ替え」で男性だけを抽出しようとしました。「レコード」「フィルタ」「フィルタ/並べ替え」で「抽出条件」に「True」と入れると男性が抽出されますが「抽出条件」に「True」である「1」を入れても抽出できません。しかし「-1」だと「男性」が抽出できました。これはなぜでしょうか?「True」は「1」ではないのでしょうか?教えてください。

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

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

ExcelのワークシートではFalseが0でTrueが0以外ですが、Excelの中 でもVisual BasicではTrueが-1でFalseが0です。 同じ会社の製品でも全然統一されてないのがMicrosoftクオリティ、 諦めましょう。

ameameame
質問者

お礼

詳しい説明をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >これはなぜでしょうか? VBAは、ビット演算をしていますから、Not 0 = -1 ですね。 ワークシートは、なぜ、TRUE が1なのか良く理由は分りませんが、C言語だからでしょうか?VBAは、元々、別ものですから仕方がないにしても、Accessの場合は、分りませんが、関数は、直接、プロシージャなしでVBAを扱っているような気がしてくることがあります。 Excelのワークシート以外は、なるべく、True/False で扱うほうが良いとは思います

ameameame
質問者

お礼

詳しい説明をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessのフィルタについて

    Access2002のフィルタについて質問します。 データシートで性別フィールドにはチェックを入れると「男性」チェックを入れないと「女性」というようにしています。 データシートから「フィルタ/並べ替え」で男性だけを抽出しようとしました。「レコード」「フィルタ」「フィルタ/並べ替え」で「抽出条件」に「True」と入れると男性が抽出されました。しかし「抽出条件」に「True」である「1」を入れても抽出できません。「0」を入れると「女性」が抽出できるのですが、なぜか「1」では「男性」が抽出できません。 しかし「-1」だと「男性」が抽出できました。これはなぜでしょうか? 「True」は「1」ではないのでしょうか?教えてください。

  • Accessの抽出についての質問

    Accessの抽出についての質問をします。 テーブルからデータシートビューで開いたものを「レコード」「フィルタ」「フィルタ/並べ替えの編集」で条件を入れて抽出できると思います。 そこまでは理解できたのですがクエリの場合はもう1つあると知りました。 クエリの中のデータをやはりデータシートビューで開いて、「レコード」「フィルタ」「フィルタ/並べ替えの編集」で条件を入れて抽出する以外に デザインビューで開いてデザイングリッドという下の画面でも同じように条件を入れて抽出できると聞きました。 画面はデータシートビューでの「フィルタ/並べ替えの編集」画面と少し似ているようですがちょっと違います。 この2つはどう違うのですか どう使い分けるといいのでしょうか? 教えてください。

  • アクセス チェックボックスとクエリ

    いつもお世話になっております。アクセス初心者です。 あるフォームのチェックボックスのオンオフとコンボボックス、 クエリの選択条件が思うように連携できなくて困っています。 やりたいことは、、、フォームのチェックボックスが、 ON(True)ならば、 フィールドにコンボボックスのキーワードを含むレコードおよびフィールドが空白のレコードを抽出し、 OFF(False)ならば、 フィールドにコンボボックスのキーワードを含むレコードのみでフィールドが空白のレコードは抽出しない、 としたいのですが…。 IIfやSwitchで式を書きましたが、チェックを入れても外しても、どちらも抽出件数が0件になります。 クエリの実行は、コマンドボタンで別のフォームを開いています。 (IIfでは、エラーが出ているのか、チェックを入れた時『~キャンセルされました』と出ます。  IIf(…,…,IIf(…,…,…)) という感じで書きました。) Switchの時のクエリの抽出条件の式は、次のような感じです。 Switch([Form]![チェックボックス]=True,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*" Or Is Null,[Form]![チェックボックス]=False,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*") ( Like の前の『([テーブル名].[フィールド名])』は、式をビルドすると、勝手に追加されてきます。) このようなことはできないのでしょうか? 別の方法が必要でしょうか? すみませんが、教えてください。宜しくお願い致します。

  • falseとtrue 0,1,-1 の意味が知りたいです

    こんにちは。 大分前からなんとなくしっくり行かないことがあります。 excel でのワークシートの関数vlookupなどの引数に true/false がありますよね。 絶対値の絶対のイメージがtrue・・の気分なのですが結果は逆でした。 IF関数では 真→true  偽→false だったと思います。 私はIF関数でのtrue/false のイメージはしっくりいきます。 vlookupはどーしても納得いくイメージが持てません。 どなたか教えていただけませんか?どんな風にとらえればいいのか。 しかも確かACCESSやVBAの中では true→-1 false→0 vlookupでは true→1 false→0 じゃなかったでしたっけ? こちらの考えも?? こっちの方は以前知り合いに説明を受けて一度は納得したのですが、 今はよくわからなくなってしまいました。 教えてください。

  • ACCESS クエリで”1”でないものを選択するには?

    ACCESS2003で排他選択("1"でないものを選択) をしたいのですが あるフィールドに”1”かブランクが入っていて ”1”以外のものを選択したいのですが クエリのデザイン画面で ------------------------- フィールド テーブル 並べ替え 表示 抽出条件  <> "1" ------------------------- 抽出条件に = "1" を入れると、"1"のレコードのみ 選択できます やりたいのは "1"以外のものを選択したいのです そこで 抽出条件に<> "1"といれると レコードがゼロ件になります また、Not "1"とか <> "1"、とか、Not = "1" と入れてみても、抽出結果はゼロ件になります 原因を教えてください

  • Access 複数の抽出条件

    Access2002 windows2000 (例)次のようなテーブルとします。 フィールド名:名前 年齢 性別 レコード1 :山本 30 男 レコード2 :鈴木 40 女 レコード3 :田中 45 男 レコード4 :森本 26 女 クエリを利用して抽出する時、年齢が40以上で男を条件とすれば (1)年齢フィールドの抽出条件:>=40 (2)性別フィールドの抽出条件:男 として、田中が抽出されます。 では年齢が40以上で男、そして女は全て抽出したい時は(1)(2)の条件はどの様にすればいいでしょう? 抽出結果が 田中、鈴木、森本となりたいのです。 複数のクエリを作れば出来ますが、1つのクエリでは無理なのでしょうか。

  • access2000での抽出条件

    DBから選択クエリーを作ってある条件を満たすデータを抽出したいのですが、レコードの量が多くて(10万単位)スぺックの悪いPCなので並べ替えをするにも固まってしまって困っています。 同じ名前を持つレコード群の中で最新の日付のレコードだけを抽出する関数ってありますか? 例えば 発生日,名前,種類,住所,電話番号 の5つのフィールドがあり、その中で同じ"名前"を持つ"発生日"の中で最新の日付だけを抽出する、として教えていただけないでしょうか。 よろしくお願いいたします。

  • 行を詰めて取り出す

    エクセル2010についてお尋ねします。 10列ぐらいの表があり、A列にはTRUEかFALSEが入っています。 FALSEの行だけを別シートに取り出したい(不要な行は詰めて表示させない)です。 今はフィルターで抽出してコピペしていますが、関数で自動化するにはどうしたらいいでしょうか? 関数に明るくないので、解説付きで数式を教えて頂けるとありがたいです。 よろしくお願い致します。

  • ACCESS-2000でのフィルタ

    アクセス2000でフィルタを使ってデータを抽出したいと思います。 教えて下さい。 住所録で、まず県名をコントロールに入力してデータを抽出しました。 (これは成功しました。) さらにそのデータの中から”男”の人だけを抽出したいのですが、 フォームに「男」「女」の二つのボタンを設置し、それぞれにマクロを 設定し、ボタンをクリックすると「男」だけを抽出できるようにしたい のです。(「男」「女」は「性別」フィールドです。) マクロに条件を入れてみたりしたのですがどうもうまくいきません。 どこにどのような条件を入れたらよいのか教えていただけましたら 幸いです。よろしくお願いいたします。

  • accesse2000で値のあるなしを調べる方法

    あるフィールドに空っぽのデータだけを抽出するクエリを作りたいと思っています。 簡単なことかも知れませんが、クエリで抽出条件に""や0、Falseを入力することでそれが可能だと思っていましたが、抽出されません。Trueを入力すれば、値が真のデータはちゃんと抽出されます。 データ型は日付型です。日付が何かしら入力されていれば抽出しないクエリを作成したく思います。 抽出条件にはなにを記述すればよいのでしょうか?

専門家に質問してみよう