自動日付/時刻の場合、SQL で TIMESTAMP データ型を使用します。MS Access 2007 でそのデータ型に相当するものは何ですか...
2 に答える
Access には正確に相当するものはありません。明確にするために、 SQLの
TIMESTAMP は常に使用可能な日付/時刻であるとは限りません。現在時刻から。ROWVERSION
しかし、レコードの変更を追跡したいとしましょう。
Access では、次の方法でフィールドを DateTime に自動的に設定できます。
=Now
まず、テーブルの DateTime フィールドの既定値として割り当てることができます。これにより、レコードが作成されたときに現在の時間が割り当てられます (ただし、レコードが変更されたときに自動的に更新されることはありません)。
変更を加えるたびに現在の DateTime を記録するには、VBA またはマクロを使用してプログラムする必要があります。
レコードセットを通過するときは、レコードに
!ModifiedDateTime
変更を加えるたびに or (フィールドと呼んでいるもの) を更新するだけです。テーブル/クエリがフォームにバインドされている場合、フォームのイベントを
ModifiedDateTime
処理することでフォームにフィールドを更新させることができます:BeforeUpdate
Private Sub Form_BeforeUpdate(Cancel As Integer) ModifiedDateTime = Now End Sub
テーブルではなくクエリを使用してフォームにバインドする場合は、フィールドがクエリに存在することを確認してください。
Access 2010 以降では、Access のトリガーに相当する新しいデータ マクロを使用して、レコードが変更された現在の日付と時刻を記録することもできます。
これは移植性が低くなりますが、VBA を使用するよりも信頼性が高くなります。これは、レコードを変更するたびにコーディングを覚える必要がないためです (データ マクロは ACE データベース ドライバー レベルで処理されます)。
探しているものがあれば、Access で監査証跡を作成する方法に関する記事がたくさんあります。
DateTime は、Access で唯一の日付ベースのデータ型です。次に、フィールドを一般的な日付または長い時間のいずれかにフォーマットして、秒単位でキャプチャします。Access がそれ以上に正確になるとは思いません。