• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2003を使って、複数台ある貸出機を製造番号毎にまとめ最新のレコードだけを一覧表に表示させるには???)

Access2003で貸出機を製造番号ごとにまとめて最新のレコードを一覧表に表示する方法は?

noname#60992の回答

noname#60992
noname#60992
回答No.3

前回とは別案の回答(質問が具体化されたので) 貸出機製造番号でグループ化し、貸出機管理IDの最大値を選ぶクエリを作ります。 (sqlは以下の通りです。 クエリの表示でSQLビューにして確認してください。)  このクエリを クエリAとします。 SELECT Max(テーブルA.貸出機管理ID) AS 貸出機管理IDの最大, テーブルA.貸出機製造番号 FROM テーブルA GROUP BY テーブルA.貸出機製造番号; このクエリとテーブルAを連結(left join)させたクエリを作ります。 sqlは以下の通りです。 出力フィールドや、ユーザー名等はご自分で調整なさってください。 SELECT テーブルA.貸出機管理ID, テーブルA.貸出機製造番号, テーブルA.貸出日, テーブルA.返却日 FROM クエリA LEFT JOIN テーブルA ON クエリA.貸出機管理IDの最大 = テーブルA.貸出機管理ID; これでご希望のデータが取得できるはずです。 No2様のご指摘部分はその通りです。 テーブルに入っていないデータを抽出することはできません。 もうひとつ貸出機テーブルを作成する必要があります。

375k
質問者

お礼

フィールドの項目をたくさん指定して集計クエリを使っていたのが悪かったようです。教えていただいたように、必要な項目に絞り込んで、それをベースに数段階にわけてクエリを作ればよかったんですね。 手順が大切なこともわかりました。 ありがとうございました!

375k
質問者

補足

ご回答ありがとうございます。 貸出機管理IDの最大値のみを抽出することが出来ました。 けれど、私が欲しいのやはり貸出を行ったことのない機械のレコードも含めてなのです。 元のテーブルにはそれらの製造番号はあります。 貸出機テーブルを作って、次にどのような作業を行えばいいと思われますか? ご負担じゃなけば、もう少し教えてください。

関連するQ&A

  • Accessでグループ化した中から最新の登録IDのみを抽出して表示するには?

    Access2003を使用しています。 集計クエリでグループ化して、グループのうちの最新のIDのデータ全てを抽出したいのですが、うまくできず大変困っています。 前任者が作成したものを修正していますが、どのような設定で作られているのか把握するだけでも大変なレベルです。 行いたいことは、貸出状況を製造番号別に表示させたいのです。 テーブルには履歴全部が残っています。 フォームで貸出中のみを表示させて、その製造番号のボタンをクリックするとその製造番号が持つデータすべてが見れるようになっています。 フィールドは約10項目あります。 ・「製造番号」フィールドをグループ化 ・他のフィールドは「先頭」 ところが「先頭」「最大」というのはタイミングでターゲットになるデータがかわってしまうようで、正しく抽出してくれません。 「最小」「最大」でもうまくできません。 Accessに詳しい方ならこのような場合、どのような方法をとられますか? 仕組み自体が大幅に変わる方法でも構いませんので、どなたか良いアドバイスをご教示いただけないでしょうか? 以前にも同じ質問をさせていただいておりますが、解決に至らなくて他の方からのアドバイスもいただきたいと思い再び投稿させていただきます。

  • ACCESS クエリ(カウント0のレコードも表示させたい)

    すみません。クエリについて教えて下さい。 <生徒テーブル> 生徒ID・氏名 <出席テーブル> 生徒ID・日付 上記2のテーブルから、クエリで下記の情報を取り出したいのです。 <出席日数> 氏名・出席日数 <出席テーブル>には、1レコードもない生徒がいます。 この生徒は<出席日数>の出席日数を0として表示したいんです。 カウントを使って計算したところ、<出席テーブル>に1レコードもない生徒は表示できません。 説明がわかり難くて申し訳ないです。 どうぞ教えてください。

  • Access テーブルのデータをフォーム上で、検索したい

    こんにちは。Access で簡単な貸出管理データを作っています。 現在、貸出フォームは作ったのですが、 返却フォームを作る際、 今度は、一度テーブルに保存した貸出記録データを 返却フォームで検索して、表示したい場合、どのように したらよろしいでしょうか? 貸出フォームでは、 テーブル1、社員ID、氏名、電話番号 テーブル2、備品ID、備品名、貸出日、返却予定日、 社員ID、氏名、電話番号 これをサブフォームを使ってつくりました。 このテーブル2のデータを返却フォームで検索して、 (備品IDか社員IDで) 表示させたいと思っています。 よろしくお願い致します。

  • Accessで最新のレコードを抽出するには

    お世話になります。 このようなテーブルがあるとします。 No|日時     | 部門  | 更新内容  --+------------+--------+---------- 1 |04/12 12:21:35| A部門 | 更新C 2 |04/07 09:15:05| B部門 | 更新う 3 |04/19 08:23:45| A部門 | 更新A 4 |04/05 10:15:20| B部門 | 更新あ 5 |04/20 09:20:13| B部門 | 更新い 6  |04/02 09:20:15| A部門 | 更新B この中から部門毎にグループ化して 部門毎に日時の最新のデータ No|日時     | 部門  | 更新内容  --+------------+--------+---------- 3 |04/19 08:23:45| A部門 | 更新A 5 |04/20 09:20:13| B部門 | 更新い を抜き出すクエリの作り方を教えてください。 ちなみに今困っているDBの更新内容に相当するフィールドは50フィールドほどあります。 よろしくお願いします。 多分クエリの集計を使用すると思っています。 多少ですがSQLわかります。 多少ですがVBAわかります。

  • [MS Access]クエリで変換 hhmm(数値型)⇒hh:mm(日付/時刻型)

    テーブル上で”930”や”1030”というように数値型になっているデータを、 クエリ上では”9:30”や”10:30”の日付/時刻型へ変換したいと考えております。 この場合、どのようなSQL文で記述をすればよろしいでしょうか? テーブルやフィールは下記のようになっております。 ■テーブル名 tbl_サンプルテーブル ■フィールド名 ID(オートナンバー型) 時刻(日付/時刻型)

  • Access クエリのフィールドに他のクエリの複数条件を満たすレコードの項目を表示させる

    Accessに関する質問です。 クエリの中で、あるフィールドに、 他のクエリの特定の条件を満たすレコードの項目を表示させたいのですがどのような方法があるかお教えいただけますでしょうか? 具体的には下記のようなクエリを組みたいと考えています。 データ元とするクエリの構成: 【フィールド1】社員番号 【フィールド2】時間帯別業務内容 【フィールド3】業務割合 組みたいクエリの構成: 【フィールド1】社員番号:上記クエリの「社員番号」 【フィールド2】業務内容_Aの割合:上記クエリのレコードの中で、フィールド1の「社員番号」と上記クエリの「社員番号」が一致し、かつ「時間帯別業務内容」が"業務内容_A"であるレコードの「業務割合」 【フィールド3】業務内容_Bの割合:フィールド2と同様のロジック 【フィールド4】業務内容_Cの割合:フィールド2と同様のロジック ・・・ ビルドの欄でDlookupを使うのかと考えましたが上手くいきません。 初心者的質問で大変恐縮ではありますが、お教え頂けると助かります。 お手数をおかけしますが、以上よろしくお願いいたします。

  • アクセス2007 複数フィールドで最古日を表示

    以下のテーブルがあります。  フィールドA=受注日付 (日付型 yyyy/mm/dd)  フィールドB=申込日付 (日付型 yyyy/mm/dd)  フィールドC=着手日付 (日付型 yyyy/mm/dd)  フィールドD=”ここに関する質問です。”(日付型 yyyy/mm/dd)  フィールドA~Cの中で、一番昔の日付レコードをフィールドDに表示させるための関数の入れ方が分かりません。  単一フィールドにあるレコードで、最古日、最新日を抽出する方法はほかの質問でも挙がっているのですが、複数フィールドの中から選択肢、新たなフィールドに表示させる方法が中々見当たらず質問させていただきました。  例)   [A]      [B]    [C]       [D] 2011/11/1  2012/1/1 2012/3/1  → 2011/11/1  ※A~Cの中で一番古いのは「A」なので、DにAの日付を表示させる。 何方かご教授、よろしくお願いいたします。

  • 複数フィールドからの最新抽出(ACCESS)

    MS-ACCESS(Ver2003)で売上進捗システムを作っているのですが、以下のように日付フィールドが5つあり、最終対応日に最新日が反映されるようにしたいのですが、どなたか詳しい方いらっしゃいましたら、御教授願います。クエリで何かの条件式を使うのでしょうか? (テーブル構造)イメージです 対応日((1))対応日((2))対応日((3)) 対応日((4))最終対応日                                                  2007 05 14  未入力   未入力    未入力  2007 05 14 2007 06 10 2007 09 20  未入力    未入力  2007 09 20 2007 07 20 2007 10 10 2007 10 30   未入力  2007 10 30 2007 08 02 2007 09 15 2007 10 22 2007 11 15  2007 11 15

  • (アクセス)レポートで作成した番号をフォームに表示できますか?

    QNo.2559017で質問を締め切りましたが再度問題が発生したので 教えて頂きたいと思います。 ---------------------------------------------- 求人テーブル(フォーム)に以下のフィールド(?)があります。 会社名 学科   学科日付   学部  学部日付 A社  学科宛  2006/11/21  学部宛 B社  学科宛         学部宛  2006/11/25 C社  学科宛  2006/11/25  学部宛 D社  学科宛  2006/11/24  学部宛  2006/11/20 ------------------------------------------------------ これを基に、それぞれ日付順に下記のクエリを作成しました。 学科クエリ           学部クエリ 2006/11/21 A社       2006/11/20 D社 2006/11/24 D社       2006/11/25 A社 2006/11/25 C社 そしてそれぞれのレポートを作成し、 教えて頂いた方法で受付番号をつけることができました。 ここまでは良かったのですが、 フォームで会社名を検索して該当する会社名が表示された時に その会社の受付番号を表示することができないのです。 レポートで作成した受付番号をフォームに表示することはできるのでしょうか? 下手な説明で申し訳ありません。 アドバイスお願い致します。

  • 2つのテーブルデータを突合せし、条件に一致したらデータを挿入したい。

    こんばんは。アクセス2003について質問します。 テーブルA  番号  終了日 001 002 003 004 テーブルB 番号 001 002 クエリ1 SELECT テーブルA.番号, テーブルA.終了日 FROM テーブルA INNER JOIN テーブルB ON テーブルA.番号 = テーブルB.番号; このようなテーブル、クエリががあります。 このとき、「テーブルAにある番号をテーブルBに追加したとき、 テーブルAにある追加した番号の「終了日」フィールドに今日の日付を投入する」 と言うことがしたいです。 要するに テーブルBに「003」と入力したら テーブルAの「003」のレコードの終了日フィールドに「2009/2/26」と入力され、 クエリ1を開いたときには 番号   終了日 001 002 003   09/02/26 となるようにしたいです。 マクロ、VBAじゃないと不可能でしょうか? もしくはADOなどでしょうか? ご教授よろしくお願い致します。