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