Windows7 & Office2010 Access2010

Print Friendly

変更履歴テーブルの作成

投稿日:

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

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

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

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

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

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

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

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

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

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

メッセージウィンドウ

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

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

お勧め記事と広告

関連記事

ピボットテーブルのフィールドをドラッグ操作で配置したい

Excel2003のときにようにピボットテーブルのフィールドをドラッグで移動したいのだけど・・との質問を受けることがあります。 これは、[ピ ...

ペイントのトリミング

アクセサリーの中にあるペイントでトリミングが行えるようになりました。 これは嬉しいですね。 画像を開き、[ホーム]タブの[イメージ]グループ ...

フィルハンドルがない

フィルハンドルってご存知ですか? Excelのワークシートでアクティブセルの右下に現れる小さい四角の形のものです。 これって便利ですよね? ...

削除済みアイテムを空にする

受信トレイなどから、削除したメールは削除済みトレイに移動します。 Outllook2010で、削除済みフォルダーを空にする方法です。 ウィン ...

データバー機能

Access2010の新機能です。 フォームやレポートの[条件付き書式]で他の値との比較結果をExcelと同じようにデータバーとして表示させ ...

-Windows7 & Office2010 Access2010

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

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