OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

access beforeupdateにおいて

  • 暇なときにでも
  • 質問No.105646
  • 閲覧数213
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 17% (17/96)

Accessのフォームを作成し、データを入力する際にでbeforeupdateを用いて、どのフィールドにデータが入力されたのかを判断し、データが入力(更新)された際に日付(更新日付)の部分を自動更新したいのですが、ご存知の方ご教授ください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル6

ベストアンサー率 70% (7/10)

(1)作成日時、最終更新日時の2つのフィールドを日付型で準備します。
(2)フォーム作成時に作成日時、フォームが更新されたとき(フィールドに更新された時)に最終更新日時のフィールドに更新された日時(そのときの時間)を入れる方法をとります。
(3)フォームレベルのイベントで処理します。

具体的には
作成日時のデータはフォームレベルのイベントの
フォームの挿入前のイベントで入れるか、
(もしくはフィールドの既定値で定義しても可能と思われる)

Private Sub Form_BerForeInsert(Cancel As Integer)
   Me![作成日時] = Now() ’←作成日の場合は Date
  ’Me![作成者] = CurrentUser() ’←作成者を入れる場合
End Sub

また、最終更新日についても、フォームレベルのイベントで
フォームの中のあるフィールドが更新されると言うのは、
フォーム全体も更新されたという事ですので”フォームのBeforeUpdate”
にコードを書きます。

この方法であると、どのフィールドにデータが入力されたのかを判断する必要はないと思われます。

Private Sub Form_BeforeUpdate(Cancel As Integer)
   Me![最終更新日時] = Now() ’←作成日の場合は Date
  ’Me![最終更新者] = CurrentUser()’←作成者を入れる場合
End Sub

フィールドのBeForeUpdateでなく、”フォームのBeForeUpdate”というのが鍵です。
以上どうでしょうか?
補足コメント
diojojo

お礼率 17% (17/96)

回答ありがとうございます。詳しい説明で分かりやすいです。

実際はフォームの中にたくさん存在するレコードはクエリーを元にフォームを作っています。そしてそのクエリーもいくつかのテーブルをもとに作成しています。
こういう場合も上記の(3)のようにすればレコードにデータが更新された場合
日時が自動で挿入されるのでしょうか?
投稿日時 - 2001-07-17 23:49:46
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル6

ベストアンサー率 70% (7/10)

>実際はフォームの中にたくさん存在するレコードは >クエリーを元にフォームを作っています。 >そしてそのクエリーもいくつかのテーブルをもとに作成しています。 >こういう場合も上記の(3)のようにすればレコード >にデータが更新された場合日時が自動で挿入されるのでしょうか? 複数のテーブルという事は、簡単な見積書作成DBの例で説明いたします。 このDBは以 ...続きを読む
>実際はフォームの中にたくさん存在するレコードは
>クエリーを元にフォームを作っています。
>そしてそのクエリーもいくつかのテーブルをもとに作成しています。
>こういう場合も上記の(3)のようにすればレコード
>にデータが更新された場合日時が自動で挿入されるのでしょうか?

複数のテーブルという事は、簡単な見積書作成DBの例で説明いたします。

このDBは以下の4つのテーブルで構成されるとします。
(1)見積書(見積書ID、顧客ID【(3)から引張ってくる】、作成日、作成者)
(2)見積書明細(商品ID【(4)から引張ってくる】、個数)
(3)顧客マスター(顧客ID、顧客名、顧客住所等・・)
(4)商品マスター(商品ID、品名、単価、商品情報等・・・)

見積書自身の最終更新を管理する場合には(1)のテーブルに作成日、更新日のフィールドを追加してこのフィールドに値が入るようにすれば良いと思います。
(わたくし個人的には”diojojo”さんはこの場合だと思うのですが・・・)

また顧客マスター、初品マスターの最終変更日を入れたい場合はこちらのテーブルに作成日、更新日のフィールドを追加すれば良いと思います。

どのテーブルに最終更新日を記載したいのかを明確にして、
最終更新日を記載したいテーブルにフィールドを追加するのが
ポイントと思われます。

以上判りましたでしょうか?

(言葉での説明は非常に難しいと痛感します、サンプルでは一目瞭然なのですが・・・・・・・)

このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ