|
>rs.Open "Data_estimated_amount", cn, adOpenKeyset, adLockOptimistic
ADOは、使ったことがないので、よくわからないのですが、
このコードは、「Data_estimated_amount」テーブルのレコードセットを開くというコードですよね。
レコードセットを開くと、レコードが1レコード以上あるならば、
先頭レコードがカレントレコードになります。
カレントレコードになるということは、そのレコードのみデータの読み書きができるということです。
>rs!日付 = Date
>rs!時間 = Time
>rs!登録者 = Me.登録者
これらのコードは、カレントレコードの各フィールドの値を書き替えています。
レコードセットを開いてから、レコードの移動を行っていないので、
結局、先頭レコードの値が書き替えられます。
つまり、このプロシージャを何度実行しようとも、先頭レコードの値をその都度上書きしているだけ
という状況です。
更新ログをつけるためには、
その都度、「Data_estimated_amount」テーブルに新規レコードを追加して、
当該新規レコードにおける各フィールドの値を書き替える
という操作をする必要があります。
DAOであれば、
>rs!日付 = Date
のコードの前に、
rs.AddNew
を実行すれば、レコードセットに新規レコードが追加され、それがカレントレコードになるので、
>rs!日付 = Date
により、新規レコードの日付フィールドにDate関数の返り値が格納されます。
なお、「rs.Update」を実行しないと、折角「rs!日付 = Date」で書き替えても、テーブルに保存されません。
ADOの場合も、AddNewメソッドとか、Updateメソッドで良かったように思いますが、
いかんせん、ADOは使ったことがないので、はっきりしたことはわかりません。
悪しからず。
|
|