Accessで更新日時を保存したいということは多いですね。
レコードが更新された日時をテーブルに保存する方法です。
VBAコード、埋め込みマクロ、独立マクロの3つ方法を解説していますので、ご自分に合った方法で設定してみてください。
参考テーブルのデータマクロを使用した更新記録テーブルの作成方法は、以下の記事で解説しています。フォーム以外での更新も履歴として保存できます。
データマクロは、Access2010以降の機能です。
-
更新日時を指定テーブルやフィールドへ自動で保存するデータマクロ
Accessのテーブルのデータを処理するためのマクロのことを[データマクロ]と呼びます。 テーブルで行った削除や追加、更新などの実行時に、設 ...
テーブルに[更新日時]フィールドを追加
まず、テーブルに[更新日時]という[日付/時刻型]のフィールドを追加します。
フォームに[更新日時]を追加
フォームに[更新日時]フィールドを追加します。
[デザイン]タブの[ツール]グループにある[既存のフィールドの追加]をクリックします。
フィールドリストから、[更新日時]を[詳細]エリアへドラッグします。
そして、コントロールの大きさや位置を調整します。
参考ここでは、ウィンドウの表示は[ウィンドウを重ねて表示する]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
更新前処理のイベントプロシージャで設定
フォームをデザインビューで開いて、[フォーム]プロパティを表示します。
[F4]キーを押すと、プロパティを表示できます。
プロパティシートの[選択の種類]が必ず[フォーム]になっていることを確認します。
[イベント]タブの[更新前処理]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]から[コードビルダー]を選択して[OK]ボタンをクリックします。
VBEが表示されます。
そして、以下のように入力します。[Date()]にすると、日付のみになります。
VBEを閉じます。VBEを閉じるショートカットキーは、[Alt]+[Q]です。
フォームのプロパティの[更新前処理]に[イベントプロシージャ]と表示されます。
これで、レコードが更新された日時を保存することができます。
フォームにテキストボックス[更新日時]がなくてもテーブルには保存されます。
データを更新後、保存すると自動的に更新されます。
また、フォームビューに切り替えてデータを編集した後、キーボードから[Shift]+[F9]を押しても更新日時を確認できます。
参考フォームをデザインビューからフォームビューに切り替える時は、[F5]キーを使用すると便利です。
マクロを使って設定
埋め込みマクロや、独立マクロを使って設定することもできます。
埋め込みマクロで設定
埋め込みマクロを使用する場合は、フォームのプロパティを表示して[イベント]タブの[更新前処理]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]から[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロツール]ウィンドウが表示されますので、[すべてのアクションを表示]をクリックします。
[新しいアクションの追加]から[値の代入]を選択します。一番下までスクロールすると、下から4番目にあります。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
そして、[アイテム]に[更新日時]、[式]に[Now()]と入力します。
以下のようになったら、上書き保存して閉じます。
フォームプロパティの[更新前処理]には、[埋め込みマクロ]と表示されます。
参考以下の記事でも、更新日時の取得を[埋め込みマクロ]を使って解説しています。
-
追加クエリを使った変更履歴テーブルの作成
追加クエリを使用して、テーブルに変更履歴を残す方法です。 履歴テーブルを作成して、単票フォームの更新日のテキストボックスに更新日を取得するマ ...
独立マクロで設定
独立マクロを作成する方法です。
複数のフォームで[更新日時]を設定して使用する場合は、独立マクロのほうが便利かもしれません。
ただ、オブジェクトは増えます。
[作成]タブから[マクロとコード]グループにある[マクロ]をクリックします。
マクロ
繰り返し実行されるタスクとを自動化したり、操作性の高いインターフェースを作成するために、データベースにロジックを追加します。
埋め込みマクロの時と同じように設定します。
まず、[表示/非表示]グループの[すべてのアクションを表示]をクリックします。
そして、マクロアクションで[値の代入]を選択し、[アイテム]と[式]に入力します。
入力が終わったら、キーボードから[Ctrl]+[S]を押します。
[名前を付けて保存]ダイアログボックスが表示されますので、任意の名前を入力して[OK]ボタンをクリックします。
ナビゲーションウィンドウに、[更新日時]というマクロが追加されていることを確認します。
フォームにマクロを設定
作成したマクロ[更新日時]をフォームに設定します。
フォームプロパティを表示します。
[イベント]タブの[更新前処理]の▼をクリックしてマクロ[更新日時]を選択します。
以下のようになればOKです。
参考独立マクロと埋め込みマクロの違いについては、以下の記事で解説しています。
-
独立マクロと埋め込みマクロの違いを知って使い分け
Accessのマクロには、独立マクロと埋め込みマクロというのがあります。 独立マクロは、マクロを個別に作成して、後でオブジェクトのプロパティ ...
更新前処理と更新後処理のイベント発生時
更新前処理(BeforeUpdate)
レコードの内容を更新した後、更新内容が反映される直前
更新後処理(AfterUpdate)
レコードを修正した後、実際にレコードの更新が行われた直後
参考これまで私は、フォームのテキストボックスの[更新後処理]に書き込んでいたのですが、[更新前処理]に書き込むほうがいいようです。
また、テキストボックスではなく、フォームの更新前処理に書き込むと1行だけで済みます。
下記はMicrosoftのページですが、独立マクロを作成してフォームで使用する方法で解説してあります。
レコード変更時に日時を保存する - Microsoft サポート(Microsoft)
テーブルのデータマクロを使用した更新記録テーブルの作成方法は、以下の記事で解説しています。フォーム以外での更新も履歴として保存できます。
Access2010以降であれば、データマクロのほうが簡単かもしれません。
-
更新日時を指定テーブルやフィールドへ自動で保存するデータマクロ
Accessのテーブルのデータを処理するためのマクロのことを[データマクロ]と呼びます。 テーブルで行った削除や追加、更新などの実行時に、設 ...
Excelでは、ユーザー定義関数やマクロを使って更新日時を表示して保存することができます。
-
最終更新日時を自動的に保存するには
Excelでセルに最終更新日時を自動的に表示できるようにしたいという場合の方法です。 ユーザー定義関数を使う方法と マクロを作成後、ボタンを ...
Wordでも自動的に最終更新日時を表示して保存することができます。
-
最終更新日時を自動で表示(SaveDateフィールドを使用)
文書を開いたときに、最終更新日が分かると便利ですね。 [SaveDate]フィールドを使って最終更新日を自動的に表示できます。 保存した文書 ...
また、PowerPointのスライドには[オブジェクトの挿入]機能を使って、Wordのフィールドコードを挿入して最終更新日時を表示することができます。
-
スライドに最終更新日時を挿入(Wordのフィールドコードを挿入)
PowerPointには、ヘッダーとフッターに自動更新日を表示することができますが、更新していなくてもファイルを開くたびに更新されてしまいま ...