Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル一覧表に最新情報を表示させたい
記事No172147
投稿日: 2018/01/25(Thu) 01:44
投稿者TT0112
解決済: ON
OS:windows7
Access Version:2010

度々すみません。質問させていただきます。

取引ナンバーに対して最新の日付や金額が表示される一覧表を帳票形式で作成しています。

まず、商品の取引が発生すると、取引ナンバーが付けられ管理します。
その後、情報を入力する情報管理テーブルへ入力日・取引ナンバー・金額・日付を入力していますが、取引ナンバーは重複している状態です。

情報管理テーブル
情報入力日 出荷日 見積金額 受注金額  取引ナンバー
5/5     6/1   1,000   9,000   1001 
5/6     6/6   3,000   8,000   1002
5/7     6/1   3,000   9,000   1001
5/8     5/9   2,000   5,000   1002

下記の様に、情報管理クエリをグループ化して一覧に最新データ表示させたいのですが、グループ化と抽出条件が上手くできないためユニークにはならず、フィールドの数だけ最新情報が出たり、ブランクになってしまったりしてしまいます。

取引ナンバー 情報入力日 出荷日 見積金額 受注金額
1001     5/5     6/1   1,000   9,000
1002     5/6     6/6   3,000   8,000
1003     5/5     6/1   1,000   9,000
1004     5/4     5/9   2,000   9,000
1005     5/5     6/1   1,000   9,000
              ↑    ↑    ↑
3つのフィールドには情報入力日から紐づいて最新が来るようにすればいいのではと思うのですが、
情報入力日を手掛かりにすると、見積金額を同日に2回入力した場合が困ってしまいます。
時間まで計算される方がいいのでは(ユニックスタイム?)という疑問は後で考えた方がいいかもしれませんが、
とにかくエクセルで作れているのでAccessでも出来るのではという素人考えですみません。

sumproduct の様な関数があれば作れるのか?sqlを書ければ解決するのか?検討がつかないのですが、どうぞ宜しくお願いいたします。

タイトルRe: 一覧表に最新情報を表示させたい
記事No172148
投稿日: 2018/01/26(Fri) 09:38
投稿者hatena
解決済: ON
> 情報入力日を手掛かりにすると、見積金額を同日に2回入力した場合が困ってしまいます。

同日に複数のレコードがある場合、どれが先かを判断するデータが必用ですね。
情報入力日に時刻まで含めるか、オートナンバー型のフィールドを追加するかになるかと思います。

タイトルRe^2: 一覧表に最新情報を表示させたい
記事No172149
投稿日: 2018/01/26(Fri) 12:48
投稿者TT0112
解決済: ON
> > 情報入力日を手掛かりにすると、見積金額を同日に2回入力した場合が困ってしまいます。
>
> 同日に複数のレコードがある場合、どれが先かを判断するデータが必用ですね。
> 情報入力日に時刻まで含めるか、オートナンバー型のフィールドを追加するかになるかと思います。

hatena様

ご返信ありがとうございます。
いつも教えて頂き、とても感謝しております。

情報入力日は時間まで含めたいと思います。
オートナンバーから紐づける発想はありませんでした。どちらかを手ががりにしたいと思います。ありがとうござます。

大変恐縮ですが、最新情報を表示させる方法をご存知でしたら、教えて頂けますでしょうか。
「〇〇取引ナンバーが複数ある場合、最新の情報入力日を返す→その日付と同じ情報入力日の見積金額や出荷日を返す」という式かコードを作れば表示できるのではと考えています。

エクセルの考えになってしまうのですが、それをどのようにAccessで作れば良いのかが分からず、暫く悩んでいます。

どうぞご教授のほど宜しくお願い致します。

タイトルRe^3: 一覧表に最新情報を表示させたい
記事No172150
投稿日: 2018/01/26(Fri) 13:05
投稿者hatena
解決済: ON
情報入力日時 に、入力した日付時刻が格納されているとして、
下記の手順で。

テーブルから集計クエリを作成して、取引ナンバー でグループ化、情報入力日時 は最大、にします。これを保存します。

新規に、クエリを作成して、元テーブルと上記の集計クエリを追加して、
取引ナンバーと取引ナンバー、情報入力日時と情報入力日時の最大、で結合します。
元テーブルから必要なフィールドを表示させます。

以上で可能です。
SQLサブクエリをつかえば一つのクエリにすることも可能です。

タイトルRe^4: 一覧表に最新情報を表示させたい
記事No172242
投稿日: 2018/04/17(Tue) 15:05
投稿者TT0112
解決済: ON
hatena 様


解決後こちらのサイトに何故か全くアクセスすることができず、ご報告が遅くなりましてすみませんでした。
大変助かり、また勉強になりました。

ありがとうございました!


> SQLサブクエリをつかえば一つのクエリにすることも可能です。

ユニオンクエリではなく、、でしょうか。
まだこのあたりはよく理解していないので調べてみます、ありがとうございます。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る