「修正」ボタンの処理
前回作成した「削除」ボタンの処理については、まだ若干の修正個所が残されています(^^;)
お気づきになった方もいらっしゃると思いますが、どんどん削除を続けていくとしまいには見出し
を削除したあげくにエラーで落ちたりします。(( ((( ヽ(;^^)ノ
この辺は各コントロールの使用の可不可を切り替えることで対応したいと思ってます。
が、ちょっとだけ後に回しておきますね。
というのは切り替えのタイミングって数箇所のプロシージャで行いますので、全体の動きをもう一
度確認してから修正の方を入れたいと思います。
#・・・やっぱし、行き当たりばったり気味のWebMasterσ(^_^;)
ということで、今回はまだ全く手をつけていなかった「修正」ボタンの処理を作ってしまうことに
いたしませう。
まずは仕様の確認から
◆「修正」ボタン クリック時
・レコードの現在位置を示す変数の値を参照する
・ワークシートの対象行位置に、現在表示中のレコードを上書きする
・画面表示はそのままとする
これに基づいて書いてみましょう。
Private Sub CmdUpdate_Click()
'*** データ修正処理 ***
Cells(LngRecRow, cNameDataCol).Value = TxtName.Text
Cells(LngRecRow, cMailDataCol).Value = TxtEmail.Text
Cells(LngRecRow, cBirthDataCol).Value = TxtBirthday.Text
End Sub
なんか見たことあるようなコードしか書いてませんが(( ((( ヽ(;^^)ノスタコラサッサ
現在操作対象となっているレコードをフォームのデータで置き換えるだけですから、これだけで
いいということは、なんとなくお分かりいただけると思います(^-^;Aアセアセ
#手抜きでわございませぬ・・・
ここでは"画面表示はそのままとする"という仕様ですが、これも好みが分かれるところだと思いま
すね。「連続して修正したいから、次のレコードを表示するようにしてくれ」って言われたりもす
るかもしれませんし・・・。
そういう場合には下記のような処理を追加すれば対処できます
'*** 現在のレコード位置より1つ後 ***
If LngRecRow < LngAllRecCnt + 1 Then
LngRecRow = LngRecRow + 1
'*** レコード表示処理 ***
TxtName.Text = Cells(LngRecRow, cNameDataCol).Value
TxtEmail.Text = Cells(LngRecRow, cMailDataCol).Value
TxtBirthday.Text = Cells(LngRecRow, cBirthDataCol).Value
'*** 表示用レコード数を変数にセット ***
LngCurRecNumDsp = LngRecRow - 1 '現在のレコード番号
'*** レコード件数表示 ***
LblRecCnt.Caption = LngCurRecNumDsp & "件目/全" & LngAllRecCntDsp & "件"
End If
ほとんどが使いまわし状態のコードになっておりますので、詳しい説明は割愛させていただきま
すね(^^;)
ポイントとしては、次のレコードに移動したときのみ表示の更新を行っているところくらいでしょ
うか。
ちょっと短いですが、キリが悪いので続きは次回へ(( ((( ヽ(;^^)ノスタコラサッサ
|
|
TOP > VBAでラクしたい ~Part 2~
|
|