Microsoft Access 掲示板

「各担当」の「一定期間内」&「最新コード」を抽出するには?

10 コメント
views
4 フォロー

業務日報管理を作成しています。
各担当に月内合計売上額を、毎日入力してもらう仕組みです。

管理画面(フォーム)を作り、
「各担当」の「月内合計売上額」が常に更新される表をつくりたいです。
(更新経過は別の表にするので、直近で入力された合計額のみが表示されるものです)

一定期間内のデータを抽出するところまではうまくいきましたが、
そこからさらに、担当別に、日々最新のデータを抽出することができません。
拙い説明で申し訳ありませんが、アドバイス頂ければ幸甚でございます。

try&try
作成: 2020/03/11 (水) 10:42:03
最終更新: 2020/03/11 (水) 10:42:03
通報 ...
1

回答するには情報不足ですので、下記の点について補足してください。

  • 関係するテーブル名、フィールド名、主キー設定
  • どこにどのように表示するのか、例えばフォーム、あるいはレポートでもよいのか。
  • どのようなレイアウトで表示したいか
2
try&try 2020/03/11 (水) 11:22:07 7c825@e16a9

さっそくのお声がけありがとうございます。

テーブル名:業務日報
フィールド名:データID(主キー)、登録日、担当者名、月内合計売上額
表示:売上管理フォームを作成して、直近の合計売上額を表示
レイアウト:2列2行の表(1行:担当名、2行:担当毎合計売上額)

以上、よろしくお願いします。

3

担当者は2名で固定ということですか。
フォーム表示は下記のような感じでしょうか。

担当名鈴木山田
合計売上額88888円99999円

合計売上額は、直近の「月内合計売上額」を表示でしょうか。

4
try&try 2020/03/11 (水) 12:55:31 7c825@e16a9

ご回答ありがとうございます。
はい!ご回答いただいた表をフォームに表示したいと考えております。
担当は固定しています。(6名の間違えでした、申し訳ありません)
合計売上額は「月内合計売上額」です。

5

下記のクエリを作成します。

TRANSFORM Sum(業務日報.月内合計売上額) AS 合計売上額
SELECT "合計売上額" AS 担当者名
FROM 業務日報
WHERE 業務日報.登録日=DMax("登録日","業務日報")
GROUP BY "合計売上額"
PIVOT 業務日報.担当者名 In ("鈴木","山田","伊藤","田中");

これのクエリをもとにフォームウィザードでフォームを作成するか、
フォームのデザインビューでレコードソースにこのクエリを設定して、
フィールドをご希望のレイアウトで配置してください。

In () の中は固定の担当者名をカンマ区切りで入力してください。
また、最新日を抽出条件にしてますが、WHERE句を変更すれば期間に変更できます。
例えば、直近10日間なら、

WHERE 業務日報.登録日<=DateAdd("d", -10, Date())
6
try&try 2020/03/11 (水) 16:44:38 7c825@e16a9

丁寧なご回答誠にありがとうございます。
今回はじめてAccessを使用しているので、なかなか躓きが多く苦労しており、
アドバイス頂けて助かっています。

教えて頂いたWHERE句の期間についてですが「2020年3月以内」+「各担当の最新登録日のデータ」
を取得する設定にしたい場合はどのようになりますでしょうか?

月毎に表示フォームを分割したいと考えており、月毎に月内合計売上額を完結できたらと思っています。
重ねてご面倒をお掛けいたしますが、アドバイス頂けましたら幸甚でございます。

7

「2020年3月以内」+「各担当の最新登録日のデータ」
の説明をデータ例をもとに具体的に説明してもらえますか。

とりあえず、
「登録日」が2020年3月内ということなら、

WHERE 業務日報.登録日 Between #2020/03/01# And #2020/03/31#

任意の年月を指定したい場合は、

業務日報.登録日>=CDate([年月(yyyy/mm)を入力してください]) And 業務日報.登録日<DateAdd("m",1,[年月(yyyy/mm)を入力してください])
8
try&try 2020/03/12 (木) 10:05:02 7c825@e16a9

引き続きアドバイスありがとうございます。

「2020年3月以内」+「各担当の最新登録日のデータ」の部分について説明不足で申し訳ありません。

最終的な目標は、昨日ご回答いただいた表に、
「月内の範囲」で「最新登録日」の「月内合計売上額」を
各担当毎に表示できるようにしたいと考えています。
(担当は6名なので、6つのレコードが並ぶようになる予定です)

毎日、各担当者に業務日報として「月内合計売上額」を入力してもらう予定です。
(「月内合計売上額」は、当月1日から、当日売上分を含めた月内合計売上額です)

売上合計額を表示するフォームは、1か月単位で区切られるものを作成しているので、
自分でもBetweenを使って、月内のデータを取得するまではできたのですが、

さらに、「月内に限った、最新の登録日」の「月内合計売上額」のみ表示するという、
絞り込みをする条件設定が分からないため、
1日から月末までのデータが、ズラッと並んで表示される結果になってしまいました。

たびたびお手数をお掛けして申し訳ございません。
アドバイスを頂いているおかげで、さらに詳しいクエリについて学ぶ機会になっています。
申し訳ございませんが、アドバイス頂ければ幸甚でございます。

9
hiroton 2020/03/12 (木) 11:43:26 2dd97@f966d

期間内の最新(の1レコードのみ)を抽出するなら>> 5のWhere条件でDmax関数の第三引数に期間を指定すればできますよ

ところで疑問に思ったんですが日報で月内合計を入力するんですか?
日報は日々の売上額を入力するにとどめて合計(集計作業)はACCESSにやらせるというのが普通だと思います
この形であれば月内のデータを取得したクエリで日々の売上額合計を設定するだけで済みますよ

10
try&try 2020/03/12 (木) 16:48:50 7c825@e16a9

度々のご回答誠にありがとうございます。

Where条件でDmax関数の第三引数に期間を指定してみましたが、演算子のエラーが出てしまい、
私の入力にミスがあるのだと思います。
アドバイスを完璧に生かせず申し訳ありませんが、かなり近いところまで来れたと思いますので、
引き続き調整してトライしてみたいと思います。
拙い私にお付き合い下さり、心からお礼申し上げます。

また、頂いた疑問について、少し込み入った業務の話になるのですが、
日々の営業活動による売上額と、別枠の売上項目があり、
各担当によって、それが有ったり、無かったりする上に、日によって増減もするので把握が難しく、
いちいち聞いて合計しているのが手間になり、この度、アクセスで管理してみたいと思いました。

初めてアクセスに挑戦しているので、躓きも多く大変なのですが、
助けて頂き本当に救われました。
これからも頑張っていきたいと思います。