プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。

以前エクセル→アクセスという行程で行っていた作業を、アクセスで一本化しようと考えています。そこで、エクセルで言う「COUNTA」や「COUNTIF」のような式を使いたいのですが、どの様に行えばよいか、教えて下さい。内容は以下の通りです。


(1) 「1日」~「31日」、「1~3」「2及び3」「3のみ」というフィールドが用意してあります。「1日」~「31日」は「0 or 1 or 2 or 3」という入力規制を掛けてあります。

(2) 「1日」~「31日」の、「1~3」の入力してあるフィールド数、「2~3」の入力してあるフィールド数、「3」の入力してあるフィールド数を各々数えたいのです。(あくまでも数字の合計ではなく、条件に沿った数字のあるフィールドの数です)

(3) できれば、エクセルで言う「COUNTA」や「COUNTIF」のような、フィールドに入力したら直ぐに「1~3」「2及び3」「3のみ」に反映でき、フォーム上で見れるようなモノが望ましいです。


以上、望みにあった式等、ありましたらご教授願います。長文失礼しました。

A 回答 (3件)

ACCESSのヘルプの貼り付けです^^;



DCOUNT(Database, フィールド, Criteria)

Database リストまたはデータベースを構成するセル範囲を指定します。Database は、関連データのリストです。

フィールド 半角のダブル クォーテーション (") で囲んだ列のラベル、またはリストでの列の位置を示す番号を指定します。

Criteria 指定した条件が設定されているセル範囲を指定します。セル範囲には、列ラベルが 1 つと検索条件を指定するセルが少なくとも 1 つ含まれています。
    • good
    • 0
この回答へのお礼

御回答有難う御座います。

ヘルプをちゃんと確認すべきでしたね(^^ゞ

お礼日時:2005/04/20 21:17

>「1日」~「31日」の「1~3」の入力してあるフィールド数「2~3」の入力してあるフィールド数「3」の入力してあるフィールド数を各々数えたいのです。


これは「1日」~「31日」のレコードがあって「1~3」「2及び3」「3のみ」のフィールドの入力されたカウントを取りたいということでしょうか?

例えばテーブル名をTest、「1~3」をA「2及び3」をB「3のみ」をCというフィールド名とした場合
SELECT Count(test.A) AS Aのカウント, Count(Test.B) AS Bのカウント, Count(test.C) AS Cのカウント
FROM test
WHERE (((test.日付) Between "1日" And "31日"));

これでテーブル内にある「1日」から「31日」のレコードの「1~3」・「2及び3」・「3のみ」のカウントが出来ます。ただテーブル内の日付フィールド?に[1日]等のレコードが重複してある場合は全てカウントされてしまいます。
1ヶ月ごとにカウントするのでしたら別に該当する月を抽出する記述が必要になります。(レコードをどのように抽出するか質問内容からは不明のため)

テーブルのクエリを作り集計クエリにし余分なフィールドを外し「1~3」等のフィールドをカウントに設定すれば同様に出来ます。新規で選択クエリを選びウィザードに従って進めてデザインで集計にすれば簡単にできます。
WHERE文でどのように抽出するかなどご希望に合わせてやってみてください。
質問内容と違うようでしたらゴメンなさい。
    • good
    • 0
この回答へのお礼

御回答有難う御座います。

WHEREで抽出するやり方はいままで知りませんでした。勉強になりました。

お礼日時:2005/04/20 21:19

#1の補足説明です



Q_日計表集計というクエリの
入金方法フィールドの
種目番号が1で
入金方法が1のレコードのカウントです^^

=DCount("[入金方法]","Q_日計表集計","[種目番号]= 1 AND [入金方法] = 1 ")
    • good
    • 0

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