Windows 8 & Office 2013 Access 2013

レコードの最終更新日時を自動保存してフォームに表示

投稿日:2017年1月7日 更新日:

Accessで更新日時を保存したいということは多いですね。

レコードが更新された日時をテーブルに保存する方法です。

VBAコード、埋め込みマクロ、独立マクロの3つ方法を解説していますので、ご自分に合った方法で設定してみてください。

[更新日時]フィールドを追加した単票フォーム

参考テーブルのデータマクロを使用した更新記録テーブルの作成方法は、以下の記事で解説しています。フォーム以外での更新も履歴として保存できます。

データマクロは、Access2010以降の機能です。

更新日時を指定テーブルやフィールドへ自動で保存するデータマクロ

Accessのテーブルのデータを処理するためのマクロのことを[データマクロ]と呼びます。 テーブルで行った削除や追加、更新などの実行時に、設 ...

続きを見る

テーブルに[更新日時]フィールドを追加

まず、テーブルに[更新日時]という[日付/時刻型]のフィールドを追加します。

テーブルのデザインビューに[更新日時]フィールドを追加

フォームに[更新日時]を追加

フォームに[更新日時]フィールドを追加します。

[デザイン]タブの[ツール]グループにある[既存のフィールドの追加]をクリックします。

フィールドリストから、[更新日時]を[詳細]エリアへドラッグします。

そして、コントロールの大きさや位置を調整します。

[更新日時]フィールドを追加した単票フォーム

参考ここでは、ウィンドウの表示は[ウィンドウを重ねて表示する]の設定にしています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

更新前処理のイベントプロシージャで設定

フォームをデザインビューで開いて、[フォーム]プロパティを表示します。

[F4]キーを押すと、プロパティを表示できます。

キーボード[F4]キー

プロパティシートの[選択の種類]が必ず[フォーム]になっていることを確認します。

[イベント]タブの[更新前処理]の[ビルダー選択]ボタン[…]をクリックします。

フォームのプロパティ[更新前処理]の[ビルダー選択]ボタン

[ビルダーの選択]から[コードビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]から[コードビルダー]を選択

VBEが表示されます。

そして、以下のように入力します。[Date()]にすると、日付のみになります。

[更新日時]=Now()

VBEにコードを入力

VBEを閉じると、フォームのプロパティの[更新前処理]に[イベントプロシージャ]と表示されます。

フォームプロパティ[更新前処理]

これで、レコードが更新された日時を保存することができます。

フォームにテキストボックス[更新日時]がなくてもテーブルには保存されます。

データを更新後、保存すると自動的に更新されます。

[更新日時]フィールドを追加した単票フォーム

また、フォームビューに切り替えてデータを編集した後、キーボードから[Shift]+[F9]を押しても更新日時を確認できます。

キーボード[Shift]+[F9]

参考フォームをデザインビューからフォームビューに切り替える時は、[F5]キーを使用すると便利です。

キーボード[F5]キー

マクロを使って設定

埋め込みマクロや、独立マクロを使って設定することもできます。

埋め込みマクロで設定

埋め込みマクロを使用する場合は、フォームのプロパティを表示して[イベント]タブの[更新前処理]の[ビルダー選択]ボタン[…]をクリックします。

フォームのプロパティ[更新前処理]の[ビルダー選択]ボタン

[ビルダーの選択]から[マクロビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]から[マクロビルダー]を選択

[マクロツール]ウィンドウが表示されますので、[すべてのアクションを表示]をクリックします。

[マクロツール]ウィンドウの[すべてのアクションを表示]

[新しいアクションの追加]から[値の代入]を選択します。一番下までスクロールすると、下から4番目にあります。

[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。

マクロアクションの追加

そして、[アイテム]に[更新日時]、[式]に[Now()]と入力します。

以下のようになったら、上書き保存して閉じます。

マクロアクション[値の代入]

フォームプロパティの[更新前処理]には、[埋め込みマクロ]と表示されます。

フォームプロパティ[更新前処理]

参考以下の記事でも、更新日時の取得を[埋め込みマクロ]を使って解説しています。

追加クエリを使った変更履歴テーブルの作成

追加クエリを使用して、テーブルに変更履歴を残す方法です。 履歴テーブルを作成して、単票フォームの更新日のテキストボックスに更新日を取得するマ ...

続きを見る

独立マクロで設定

独立マクロを作成する方法です。

複数のフォームで[更新日時]を設定して使用する場合は、独立マクロのほうが便利かもしれません。

ただ、オブジェクトは増えます。

[作成]タブから[マクロとコード]グループにある[マクロ]をクリックします。

マクロ

繰り返し実行されるタスクとを自動化したり、操作性の高いインターフェースを作成するために、データベースにロジックを追加します。

[作成]タブの[マクロ]

埋め込みマクロの時と同じように設定します。

まず、[表示/非表示]グループの[すべてのアクションを表示]をクリックします。

そして、マクロアクションで[値の代入]を選択し、[アイテム]と[式]に入力します。

マクロツールでマクロアクション[値の代入]を設定

入力が終わったら、キーボードから[Ctrl]+[S]を押します。

キーボード[Ctrl]+[S]

[名前を付けて保存]ダイアログボックスが表示されますので、任意の名前を入力して[OK]ボタンをクリックします。

[名前を付けて保存]ダイアログボックス

ナビゲーションウィンドウに、[更新日時]というマクロが追加されていることを確認します。

ナビゲーションウィンドウの[更新日時]マクロ

フォームにマクロを設定

作成したマクロ[更新日時]をフォームに設定します。

フォームプロパティを表示します。

[イベント]タブの[更新前処理]の▼をクリックしてマクロ[更新日時]を選択します。

フォームプロパティの[更新前処理]の▼をクリックしてマクロ[更新日時]を選択

以下のようになればOKです。

フォームプロパティの[イベント]タブの[更新前処理]

参考独立マクロと埋め込みマクロの違いについては、以下の記事で解説しています。

独立マクロと埋め込みマクロの違いを知って使い分け

Accessのマクロには、独立マクロと埋め込みマクロというのがあります。 独立マクロは、マクロを個別に作成して、後でオブジェクトのプロパティ ...

続きを見る

更新前処理と更新後処理のイベント発生時

更新前処理(BeforeUpdate)

レコードの内容を更新した後、更新内容が反映される直前

更新後処理(AfterUpdate)

レコードを修正した後、実際にレコードの更新が行われた直後

参考これまで私は、フォームのテキストボックスの[更新後処理]に書き込んでいたのですが、[更新前処理]に書き込むほうがいいようです。

レコードの更新日時を自動的に表示するには

また、テキストボックスではなく、フォームの更新前処理に書き込むと1行だけで済みます。

下記はMicrosoftのページですが、独立マクロを作成してフォームで使用する方法で解説してあります。

レコード変更時に日時を保存する(Microsoft)

テーブルのデータマクロを使用した更新記録テーブルの作成方法は、以下の記事で解説しています。フォーム以外での更新も履歴として保存できます。

Access2010以降であれば、データマクロのほうが簡単かもしれません。

更新日時を指定テーブルやフィールドへ自動で保存するデータマクロ

Accessのテーブルのデータを処理するためのマクロのことを[データマクロ]と呼びます。 テーブルで行った削除や追加、更新などの実行時に、設 ...

続きを見る

Excelでは、ユーザー定義関数やマクロを使って更新日時を表示して保存することができます。

最終更新日時を自動的に保存するには

Excelでセルに最終更新日時を自動的に表示できるようにしたいという場合の方法です。 ユーザー定義関数を使う方法と マクロを作成後、ボタンを ...

続きを見る

Wordでも自動的に最終更新日時を表示して保存することができます。

最終更新日時を自動で表示(SaveDateフィールドを使用)

文書を開いたときに、最終更新日が分かると便利ですね。 [SaveDate]フィールドを使って最終更新日を自動的に表示できます。 保存した文書 ...

続きを見る

また、PowerPointのスライドには[オブジェクトの挿入]機能を使って、Wordのフィールドコードを挿入して最終更新日時を表示することができます。

スライドに最終更新日時を挿入するには

PowerPointには、ヘッダーとフッターに自動更新日を表示することができますが、更新していなくてもファイルを開くたびに更新されてしまいま ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Windows 8 & Office 2013 Access 2013

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

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