Access2000にて次のようなデータベースを作成しています。
おそらく非常に初歩的な質問だと思うのですが、全くの素人のため困っています。
バカバカしいなどと言わずにどうかご教授願います。。。

-----------------------
No グループ名  分類1  分類2  分類3
1  グループA   レ    レ    レ
2  グループB             レ
3  グループB   レ         レ
4  グループB        レ    レ
5  グループC   レ
6  グループC   レ         レ
-----------------------

分類1~3はチェックボックスで入力されています。
このデータを元に、それぞれ分類1~3に属するデータの数をカウントしたいのです。
レポートの記述でどのようにすればチェックの入ったものだけをカウントできる
のでしょうか。

目的は上のテーブルを次のような表にすることです。

--------------------
グループ名  分類1  分類2  分類3
グループA   1    1    1
グループB   1    1    3
グループC   2    0    1
────────────────────
グループ計   4    2    5
--------------------

どうかよろしくおねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

レポートは、Accessのオブジェクトの方ですよね。



チェックボックスということで元々のテーブルではBoolean型(Yes/No型??)でしょうか。

集計クエリーにして、
SELECT グループ名,Sum(IIf(分類1=True,1,0)) As 分類1カウント,Sum(IIf(分類2=True,1,0)) As 分類2カウント,Sum(IIf(分類3=True,1,0)) As 分類3カウント FROM テーブル名 GROUP BY グループ名

とこれをレポートのレコードソースに指定してやります。
※SQL構文は未確認のため参考程度にして下さい。

あとはこのフィールドをレポート上に配置するだけです。

集計クエリーを使用せずにNo.で並び替え・グループ化してグループフッターセクションで上記のSQL文中の式(Sum(IIf(分類1=True,1,0)))を設定したテキストボックスを配置して、詳細セクションを非表示にするっていう方法もあります。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
集計クエリで何とかなりそうです。
非常に詳しい回答をありがとうございました。

お礼日時:2001/05/29 23:19

レポートということで、学生さんですか?


答えを全部教えてしまうと、勉強にならないので、やり方だけ述べます。

<方法>
1.オブジェクト - クエリ - ウィザードを使用してクエリを作成する をクリックする。
2.対象となる、テーブル及びフィールドを選択する。
3.集計するを選択する。

その後は、やってみてください。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
レポートとはオブジェクトのことでした。
学生ではありませんがお勉強させていただきました。

クエリで集計させることで何とかなりそうです。
まだまだ基本がわかっていないので大変ですが頑張ってみます。
ありがとうございました。

お礼日時:2001/05/29 23:17

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessクエリーでチェックボックスOnのものだけカウントしたい

こんにちわ。
超初心者です。

チェックボックスがOnになっているものだけカウントしたいんですが、どこ
をどうしたら良いのか分かりません。

クエリーの集計を「カウント」にしてみたのですが、Offもカウントされて
しまいます。

どうしたらよいのでしょうか?

Aベストアンサー

例えば「名前」と「チェックボックス」というフィールドが合ったとします。
選択クエリで集計欄に
名前は「カウント」、チェックボックスは「グループ化」をし、
チェックボックスの抽出条件のところに、-1と入れれば、
数は数えられますが。。。
こんなので参考になりますか?

Qアクセス2000 チェックボックスのカウント法

フォーム上にチェックボックス(YES/NO型)を作り、
どの項目が完了したかが分かるような表を作成しました。
チェックボックスは全部で70個ほどあるのですが、YESまたはNOの個数をカウントするにはどのようにすればいいのでしょうか?
マクロを使用せずにできるでしょうか?

Aベストアンサー

IFではなくIIFです。
ちょっと意味を取り違えてましたね、失礼致しました。
70個のフィールドがあるのですね、では、それぞれをIIF関数で判定させて集計するか、ソーステーブルを基にしたクエリーを作成し、そこで集計させた方が良いかも知れませんね

それと、ごめんなさい、ちょっと識別子が余計でしたので、訂正しますね
=SUM(IIF([チェックボックス]=yes,1,0))
多数あるのであれば、こんな風になりますね
=SUM(IIF([チェックボックス1]=yes,1,0)IIF([チェックボックス2]=yes,1,0)+IIF([チェックボックス3]=yes,1,0)+・・・・・)

ヘッダーかフッター以外でも集計可能かもしれませんが、Accessもバージョンによって、その辺が異なりますので、無難な所では、グループヘッダーかフッターなんです。
フォーム上での集計で、そのページだけなら問題は無いと思いますが、全体の集計となると、グループヘッダーかフッターになりますね

Qアクセスのレポートでレコード数をカウントしたい

お世話になります。
アクセスで、クエリで抽出した結果のレコード数をカウントし、レポートに出力させたいのですが、うまくいきません。
各クエリのレコード数が、レポートを見て分かればいいのですが、
出来ればXXXX/総レコード数XXXXという形で出力できれば尚嬉しいです。

宜しくお願いします。

Aベストアンサー

ごめんなさい。
コントロールボックスじゃなくてテキストボックスですね。
変な説明になってしまいました。

まず、必要に合わせてページヘッダー
又はレポートヘッダーにテキストボックスを作ります。
そのテキストボックスにカウント関数”=Count([****])”を入力し
****に詳細にあるフィールドを何でも良いので指定します。
(何を指定しても、レコード数は同じなので何でも大丈夫だと思います。)
そうすると、そのフィールドのレコード数が
カウントされて出てくると思うのですが。

braidalさんがどのようにレポートを作っているかが
分からないので、よく分からないのですが
総レコート数というのは、抽出する前のレコード数ということでしょうか?
でも、この場合最初にも書きましたが
クエリで既に抽出されたデータだけしか
レポートには出て来ていませんので
総数=抽出されたレコード数となります。

レポートでXXXX/総レコード数XXXXというのを
表示させる方法は、分かりません。
クエリで抽出をしていなければ
(全データを表示してレポートを作っている場合)
グループフッターでグループごとにカウントさせ(上記と同じ方法です)
またレポートフッターでカウントさせる方法は出来ますが。
もしかしたら、VBAなどで出来るかもしれません・・・

詳しい方法は、こちらを参考にしてみて下さい。
また、カウントと検索するとカウント関数のやり方も分かります。
http://www.mahoutsukaino.com/ac/ac97/basic/nyumon_r3.htm

ごめんなさい。
コントロールボックスじゃなくてテキストボックスですね。
変な説明になってしまいました。

まず、必要に合わせてページヘッダー
又はレポートヘッダーにテキストボックスを作ります。
そのテキストボックスにカウント関数”=Count([****])”を入力し
****に詳細にあるフィールドを何でも良いので指定します。
(何を指定しても、レコード数は同じなので何でも大丈夫だと思います。)
そうすると、そのフィールドのレコード数が
カウントされて出てくると思うのですが。

braidalさんが...続きを読む

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

よろしくお願い致します。

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。

Qアクセエスのレコードの更新をVBAでするには?

アクセスで、一覧表のフォームにボタンを取りつけています。レコードの内容を変更したら、ペンの形のマークが現れますね。これは変更中ということですが、そこでボタンを押しても変更は確定されないから、更新確定させたいのです。

それで、DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。

元の一覧表の位置を動かさないために、Ctrl+Enter キーを押して更新確定させたような状態をVBAで実現する方法あるのでしょうか?

よろしくお願いします。

Aベストアンサー

No1 です。
今回の場合には
Docmd.RunCommand acCmdSaveRecord の方が良かったですね
文字通りレコードを保存します。
Requery に引きづられてしまいました (^_^;)

Recalc、Refresh、Requery の使い分けは下記が参考にはなりますか?
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


人気Q&Aランキング

おすすめ情報