• ベストアンサー

ACCESSのレコード数表示

ACCESS97において フィールド数 複数(仮にA~E) レコード数  複数 値    3or2or1の時の フィールドAにおける3のレコード数         2のレコード数         1のレコード数 これをフィールドA~Eすべてについて 知りたいのですが、良い方法を知りませんか?

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

  • ベストアンサー
  • Hk2001
  • ベストアンサー率48% (24/49)
回答No.1

クエリでいいのですか? どんな、結果で答えがほしいのかわかりません。 クエリで結果が知りたいのであれは IIfの関数をしようしては? テーブル名をテーブル1で作成 フィールド名 A データ型:テキスト B データ型:テキスト C データ型:テキスト で定義 クエリで以下の構文を使ってみてください。 参考位にはなるかも SELECT Sum(IIf([A]='1',1,0)) AS A1, Sum(IIf([A]='2',1,0)) AS A2, Sum(IIf([A]='3',1,0)) AS A3, Sum(IIf([B]='1',1,0)) AS B1, Sum(IIf([B]='2',1,0)) AS B2, Sum(IIf([B]='3',1,0)) AS B3, Sum(IIf([C]='1',1,0)) AS C1, Sum(IIf([C]='2',1,0)) AS C2, Sum(IIf([C]='3',1,0)) AS C3 FROM テーブル1;

その他の回答 (1)

  • arata
  • ベストアンサー率49% (139/279)
回答No.2

Hk2001さんと同じやり方で、Countを使う方法もあります。 SELECT Count(IIf([A]=1,1,Null)) AS A1, Count(IIf([A]=2,1,Null)) AS A2, Count(IIf([A]=3,1,Null)) AS A3, Count(IIf([B]=1,1,Null)) AS B1, Count(IIf([B]=2,1,Null)) AS B2, Count(IIf([B]=3,1,Null)) AS B3, Count(IIf([C]=1,1,Null)) AS C1, Count(IIf([C]=2,1,Null)) AS C2, Count(IIf([C]=3,1,Null)) AS C3 FROM テーブル1; Countは、値がNullのものは数えないことを利用したものです。 ですから、 Count(IIf([A]=1,1,Null)) AS A1 は Count(IIf([A]=1,[A],Null)) AS A1 でもかまいません。 Sumと同じように結果が返ってきますが、レコード数が0の場合、Sumでは、Nullが返ってくるところ、Countでは0が返ってきます。 必ず複数レコードあるのであれば、結果は同じです。

関連するQ&A

  • ACCESS 以下のようなレコードを抽出するSQL

    ACCESSのデータベースで あるフィールド(フィールドAとします)の値に対して、 別のフィールド(フィールドBとします)の値が1つに決まる データベースがあるとします。 例えば、フィールドAの値が1のレコードは、 どのレコードもフィールドBの値はaである。など このようなデータベースでこのような関係になっていないレコード 例えば、フィールドAの値が1のレコードの中に フィールドBの値がaであるレコードと フィールドBの値がbであるレコードがある。など を抽出するSQLはどのように記述すればよいでしょうか。 テーブル名はTABEL1とします。 次の2つのケースでお願いします。 (1)フィールドAの値が異なればフィールドBの値が異なる場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが ある時、フィールドAの値が1でないレコードの中には、   フィールドBの値がaであるレコードが存在しない場合   (2)フィールドAの値が異なるがフィールドBの値が同じこともある場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが あっても、フィールドAの値が1でないレコードの中にも、   フィールドBの値がaであるレコードが存在する場合 【回答例】(ただし、1,a,bなどの具体的な値は使わないこと) ・フィールドAの値が1のレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1; ・フィールドAの値が1でフィールドBの値がaのレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1 AND フィールドB='a'; ・フィールドAの値が1でフィールドBの値がaのレコードと  フィールドAの値が1でフィールドBの値がbのレコードを表示する例 SELECT * FROM TABLE1 WHERE (フィールドA=1 AND フィールドB='a') OR (フィールドA=1 AND フィールドB='b'); この目的は、データベースに問題があり、 問題となっているレコードを見つけて直したいのです。 よろしくお願いします。

  • ACCESSで重複するレコードは無視する

    ACCESSで複数のフィールドで重複するレコードを1個だけにする方法教えていただけませんか。エクセルのフィルターオプションのように複数のセルを選び、重複するレコードを無視する方法です。 フィールド名1、フィールド名2、フィールド名3があり、1にはたとえば県名、2には市町村名、3には学校名があり、これを重複を除き1レコードにしたい。削除はできるのですが、レコードを1個にするのが出来なくて弱っています。ACCESS2003です。

  • Access 2007で、テーブルからレコードを削除するクエリを作りた

    Access 2007で、テーブルからレコードを削除するクエリを作りたい。 具体的には、テーブルAのフィールドF1とテーブルBのフィールドF2があるとします。このとき、テーブルA中の各レコード(仮にXとします)であって、そのF1の値と同じ値をF2に持つレコードがテーブルBに含まれている場合は、(テーブルAから)そのレコードXを削除するという処理をしたいのです。ややこしいと思いますが、これをクエリやマクロで作ることはできるでしょうか? 私はVBAを知らない初心者です。上の処理も文章で書くと理解してもらえるかどうか不安ですが、だれか助けて下さい。

  • アクセスのテーブルのレコードをひとつのフォームにすべて表示ししたい

    アクセス2002を使っています。 ひとつのテーブルに登録しているレコードの値(日付順のフィールドにより数値を入力たレコードです)をひとつの単票形式のフォームにすべて表示するようにしたいのですが、できますか? よろしくお願いします。

  • アクセスXPのテーブルで最大レコード数は?

    アクセスXPのテーブルで使用できるレコード数に 上限はあるのでしょうか? また、フィールド数と関連するものでしょうか? フィールド数としては5つ程度を予定しています。

  • アクセス 最大ファイルサイズおよび最大レコード数

    アクセス初心者です。 windowsME Access2000を使用しています。 現在システム作成中です。 アクセスにはサイズの制限のようなものはあるのでしょうか? 例えば、エクセルでは1レコードのフィールド数や、レコード件数に制限がありますよね。 アクセスでも1レコードのフィールド数は255でしょうが、レコード数についてはいろいろ調べても特に記述が無くてわかりません。  (1)レコード数に制限はあるのか?  (2)1ファイルのサイズに制限はあるのか?  (3)データベース全体に制限はあるのか? などです。もちろん、1つのレコードの長さに関係はあると思いますが。ちなみに現在のシステムはデータなしの状態で、3メガ程のちいさなものです。 どなたか詳しい方よろしくお願いします。とても急いでおります。m(__)m

  • ACCESS2000でのレコード抽出

    OS:WindowsXP ACCESS2000 あるフィールドの値が最大となるようなレコードを選択クエリで 抽出しようとしているのですがうまくいきません。 テーブルのフィールドは4個あります。 テーブル [系列] [優先度] [データ1] [データ2] ここで各系列ごとに優先度が最大となるレコードのみを 抽出したいのです。 系列、データ1、データ2は重複がありえます。 優先度は系列を跨いだ重複はありますが、 同系列内での重複はありません。 レコードの例) 1:系列A 優先度1 データA データB 2:系列A 優先度2 データC データD 3:系列B 優先度1 データE データF 上記の例で言いますと、レコード2:とレコード3:のみを 抽出するクエリを作成したいのです。 集計クエリで優先度のフィールドを「最大」にしても、 3つのデータ全てが抽出されてしまいます。 どなたか解決策をご教示ください。

  • AccessVBA レコード数を調べるには

    こんにちは。 タイトルにも書きましたが、あるフォームがあって、そのフォームに 表示されている全てのレコードの数をかぞえる方法と、 今カーソルがある(値が選択されている)レコードが何番目のレコード なのかという値を返してくれる関数か何かありますでしょうか。 あったらぜひ教えていただきたいです。

  • アクセスの特定のレコード抽出方法

    アクセスで、同じ内容のレコードで更新日時フィールドのみ変化している複数のレコードから、更新日時の新しいレコードのみを抽出する方法を教えてください。

  • Access2002について

    Access2002で次のようなデータがあり、 フィールドA |フィールドB | フィールドC --------------------------------------------  123    |  234   |  456    |  123   |   (1)  789    |  123   |   (1) フィールドBのデータが、フィールドAのデータの中に存在している時は、フィールドCに(1)と表示させる。 ・・・という処理をしたいのですが、どんな方法でやったらいいのでしょうか?レコード数は50万程あります。 よろしくお願いします。