Windows7 & Office2010 Access2010

変更履歴テーブルの作成

投稿日:

追加クエリを使用して、テーブルに変更履歴を残す方法です。
テーブル

[T_売上]テーブルは、下のようになっています。[ID]が主キーとなっています。
デザインビュー

この[T_売上]テーブルをコピーして、[T_売上の履歴]テーブルを作成します。
[ID]の主キーは削除して、重複のレコードが保存できるようにします。
履歴テーブル作成

スポンサーリンク
[F_帳票]フォームの[開く]ボタンをクリックすると[F_単票]フォームが開くように設定しています。
これについては、[帳票フォームから単票フォームを起動するには]を参照してください。

この[F_単票]フォームで[担当者]や[数量][商品]を変更したら、更新日時が自動取得され、そのデータが[T_売上の履歴]に保存されるようにします。
単票フォーム

[更新日時]が自動的に取得されるように[担当者][数量][商品]コントロールの[更新後処理]イベントに以下のように入力します。
VBA

追加クエリを作成します。[T_売上]テーブルを元に下のように設定します。[デザイン]タブにある[クエリの種類]グループにある[追加]ボタンをクリックします。[追加]ダイアログボックスで[追加先]の[テーブル名]に[T_売上の履歴]を選択します。[OK]ボタンをクリックしてクエリに名前を付けて保存します。
追加クエリ

[追加クエリ]を実行するためのマクロを下のように作成します。
マクロ

このまま[F_単票]の更新後処理にマクロを指定してもいいのですが、このままだと
プロパティシート 更新後処理

[追加クエリを実行すると、テーブルのデータが変更されます]と[1件のレコードを追加します]という、以下のメッセージがクエリを実行する度に表示されるようになります。
メッセージウィンドウ

メッセージウィンドウ

面倒なので、マクロを下のようの編集します。マクロは右側にマウスをポイントすると[↑][↓]の矢印が表示されますので、この矢印で順番を変更することができます。
[アクションクエリ実行時の確認メッセージを非表示にする]も参考になると思います。
履歴 マクロ

テーブル[T_売上の履歴]を表示すると、下のようにデータを更新したレコードが追加されています。[更新日]がないレコードは削除するように削除クエリもマクロに取り込むといいですね。また、このテーブルを元にフォームを作成し、ボタンをクリックして履歴を閲覧できるようにすると、より便利です。
履歴テーブル

トラブルをすぐに解決したいならteratail

お勧め記事と広告

関連記事

ページの開始番号を変更する

Excelでヘッダーやフッターにページ番号を挿入すると、既定では[1]から始まりますが、 表紙をつけるなどで[2]や[3]から開始したい場合 ...

Webページとして保存がなくなった

PowerPoint2010では、[Webページとして保存]がなくなりました。 下は、PowerPoint2007の[名前を付けて保存]から ...

色付きセルの合計

Excelの表でセルに色を付ける方は多いと思います。この色付きのセルのみを合計したいという場合、Excel2007以降のバージョンであれば簡 ...

ファイルのパスをコピー

Office2010では、ファイルのパスを簡単にコピーできます。 [ファイル]タブをクリックして、[情報]をクリックします。ファイル名の下に ...

ドキュメント検査

Office2010には、非表示のデータや個人情報などを自動的にチェックして削除してくれる機能があります。Office2007からの機能です ...

-Windows7 & Office2010 Access2010

Copyright © 2001-2017 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2017 AllRights Reserved Powered by AFFINGER4.