- PR -

DataGridViewでレコード更新時に更新者名を記録したい

投稿者投稿内容
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-04-16 17:08
どうしても (3) の時刻で更新したいとすると、
あまりよい方法が思いつきませんでした。
「行が変更されるとき」というイベントはありませんので、
CellValueChanged あたりでフラグを立てて、
RowValidated でフラグが立っていれば設定するようなイメージでしょうか。

DataTable にバインドしているのなら、
DataTable.RowChanged イベントで設定する手はありますが、
無限ループになってしまいますし、回避するにはフラグを使うしかないと思います。

詳しい方いらっしゃいましたらフォローお願いします。


ただ、個人的にはこの仕様が少々疑問に思えます。 (1) かと思っていました。
仕様がわからないので何とも言えませんが、
データベースに更新するなら、データベースにコミットされた時刻を
記録する方がよいのではないでしょうか?
Access は行の編集が終了したタイミングで更新されますよね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-04-16 22:11
引用:

McLarenさんの書き込み (2007-04-16 13:14) より:
『「更新ユーザー」とか「時刻」以外だったら処理しないように・・・』ということでよろしかったでしょうか。
それもなるほどです。ありがとうございます。


まて。
どこかでも書いたが、「更新ユーザ」や「時刻」のセルは、変更されたらまずいんじゃないの?だったら、最初から変更できないようにしておくのが、ユーザに優しいってもんじゃないか?

 あと、ぶさいくろうさんの「投稿数700超えててそれはないだろう・・・」って言葉。スルーするのもいいけど、よく意味を考えようね。
 投稿数 700 も超えていれば、いろいろと教えてもらったことが蓄積されているんじゃない?それが全然生かせていないような質問の内容、質問の仕方って、どういうこと?
 それと、自分が今 DataGridView 使っているなら、DataGridView って書いてある質問には目を通そうぜ?同じような問題、覚えておいた方がいいようなことが書いてあるに決まっているんだからさ。な!!


 本題については、「データベース側で、トリガーにて実装」に一票。J-SOX 対応でしょ?そういう「理由」も添えておくと、案が集まりやすいし、他の人への参考にもなりやすい。

_________________
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-04-17 08:16
 皆様お忙しいところたくさんアドバイスいただきありがとうございました。

CellValueChanged あたりでフラグを立てて、
RowValidated



データベース側で、トリガーにて実装

進めようと思います。ありがとうございました。
ペンちゃん
ベテラン
会議室デビュー日: 2006/08/04
投稿数: 61
投稿日時: 2007-04-17 10:50
ここまであからさまに苦言をスルーだと何だかすがすがしいですね。
人に何かを指摘、注意されたときって成長するチャンスだと思います。

700以上の投稿の中でそのチャンスを何度捨ててきたのかと考えるともったいないなぁと思うのは私だけでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-04-17 20:45
引用:

ペンちゃんさんの書き込み (2007-04-17 10:50) より:
ここまであからさまに苦言をスルーだと何だかすがすがしいですね。
人に何かを指摘、注意されたときって成長するチャンスだと思います。

700以上の投稿の中でそのチャンスを何度捨ててきたのかと考えるともったいないなぁと思うのは私だけでしょうか。

燃やさないための、正しい対応かも。

次に期待
_________________

スキルアップ/キャリアアップ(JOB@IT)