フォームとマクロを使用すると、Access テーブルのレコードが最後に変更されたタイミングを追跡できます。 フォームを使用してレコードを変更すると、マクロは日付と時刻をテーブルに格納します。 最新の変更日時のみが保存されます。
注
この記事の手順は、デスクトップ Access データベースで使用するためのものです。
この記事の内容
概要
テーブルのレコードが変更された日時を記録するには、次の手順を実行する必要があります。
手順 1: テーブルにフィールドを追加する 記録する前に、日付と時刻を保存しておく場所が必要です。 最初の手順では、追跡するレコードを含むフィールドをテーブルに作成します。日付と時刻をキャプチャするには、日付用に 1 つのフィールドを、時刻用に 1 つのフィールドを作成します。 どちらか一方のみをキャプチャする場合は、必要なフィールドのみを作成できます。
手順 2: 日付と時刻を記録するマクロを作成する 日付、時刻、またはその両方のどれを記録するかに応じて、マクロでは 1 つまたは 2 つのアクションが実行されます。 マクロを記述するときは、日付と時刻を格納するフィールドのみを指定します。それらのフィールドを含むテーブルは指定しません。 そうすれば、他のテーブルやフォームでマクロを簡単に再利用できます。
手順 3: データ入力フォームにマクロを追加する テーブル内のレコードを編集するために使用するフォームの [ 更新前 ] フォーム プロパティにマクロを追加します。 他のフォームを使用してテーブル内のレコードを編集する場合は、フォームごとにマクロを追加することもできます。 このようにして、レコードの編集に使用するフォームに関係なく、日付と時刻をキャプチャできます。
ヒント
レコードが作成されたタイミングは追跡したいが、レコードが変更されるタイミングは気にしない場合は、テーブルにフィールドを作成して追跡し、フィールドの "既定値" プロパティを使用して、各レコードの作成時にタイムスタンプを付けます。
始める前に
開始する前に、次の点を考慮してください。
- ユーザーはデータベースでマクロを有効にする必要があります。 ユーザーがデータベースを開いてマクロを有効にしなかった場合、マクロはレコードにタイムスタンプを付けません。 信頼できる場所にデータベースを保存すると、マクロは自動的に有効になります。
- ユーザーがレコードを編集しても、レコードにタイム スタンプを付けるマクロを含むデータ入力フォームを使用しない場合、そのユーザーが編集するレコードにはタイム スタンプが付けられません。
- テーブル フィールドには日付と時刻が保存されるため、レコードが変更されるたびに、それらのフィールドの値が上書きされます。 つまり、最新の変更の日付と時刻のみを格納できます。
- レコードが作成された日時のみを取得したい場合は、テーブルにフィールドを追加し、そのフィールドの [既定値] プロパティを Now() または Date() に設定するだけです。
- データベース ファイルが古いファイル形式で、ユーザー レベルのセキュリティを使用している場合は、テーブルのデザインと、そのレコードの編集に使用するフォームを変更するアクセス許可が必要です。
手順 1: タイムスタンプ フィールドをテーブルに追加する
情報を保存するフィールドを作成します。
デザイン ビューでテーブルを開きます。
次のいずれか、または両方の操作を行います。
- 日付を格納するフィールドを作成します。 デザイン ウィンドウの [フィールド名] 列で、新しい行に「更新日」と入力し、[データ型] 列で [日付/時刻] を選択します。
- 時刻を格納するフィールドを作成します。 デザイン ウィンドウの [フィールド名] 列で、新しい行に「変更時刻」と入力し、[データ型] 列で [日付/時刻] を選択します。
Ctrl キーを押しながら S キーを押して、変更内容を保存します。
手順 2: 日付と時刻を記録するマクロを作成する
フィールドを作成したら、これらのフィールドにタイムスタンプを付けるマクロを作成します。 マクロを他のテーブルで再利用できるようにするには、テーブル名ではなくフィールド名のみを参照します。
注
日付または時刻のみを記録したい場合は、不要なマクロ アクションを省略します。
- [作成] タブの [その他] グループで、[マクロ] をクリックします。 このコマンドを使用できない場合は、[モジュール] または [クラス モジュール] ボタンの下にある矢印をクリックして、[マクロ] をクリックします。
- [デザイン] タブの [表示/非表示] グループで [すべてのアクションを表示] をクリックします。
- マクロ ウィンドウで、マクロ アクション リストを開き、[ 値の設定] を選択します。
最初に、使用可能なすべてのマクロ アクションを表示します。 SetValue アクションは、データを変更できるため、安全ではない可能性があると考えられ、既定では非表示になっています。
次に、この一覧から [SetValue] アクションを選択します。 - [ 値の設定 ] アクション ボックスの [項目 ] ボックスに [更新日] と入力するか貼り付けます。
- [ 式 ] ボックスに「 Date()」と入力します。
- 次のマクロ操作リストを開き、[ 値の設定] を選択します。
- [ 値の設定 ] アクション ボックスの [項目 ] ボックスに「 [更新時刻]」と入力するか貼り付けます。
- [ 式 ] ボックスに「 Time()」と入力します。
- Ctrl + S キーを押してから、[ 名前を付けて保存 ] ダイアログ ボックスに「 最終更新日時」と入力します。
手順 3: フィールドとマクロをデータ入力フォームに追加する
マクロを作成したら、ユーザーが関連テーブルにデータを入力するために使用する各データ入力フォームにマクロを追加します。
デザイン ビューでデータ入力フォームを開きます。
[デザイン] タブの [ツール] グループで [既存のフィールドの追加] をクリックします。
[ フィールド リスト] の [ このビューで使用できるフィールド] で、[ 更新日 ] フィールドと [ 変更時刻 ] フィールドをフォームにドラッグします。 必要に応じて、フォーム上のフィールドのサイズと配置を調整します。
プロパティ シートが表示されていない場合は、F4 キーを押して表示します。
プロパティ シートで、[ 選択の種類 ] が [フォーム] に設定されていることを確認します。
ヒント
選択の種類を変更するには、ドロップダウン リストで目的の選択の種類をクリックします。
プロパティ シートで、[ イベント ] タブをクリックします。
[ イベント ] タブの [ 更新前 ] ボックスの矢印をクリックし、[ 最終更新日時] をクリックします。
複数のフォームを使用してレコードを編集する場合は、フォームごとにこの手順を繰り返します。
マクロが正しく機能していることを確認するには、フォームをフォーム ビューで開き、レコードを編集してから、Shift+F9 キーを押します。 レコードを編集した日時が表示されます。