マクロでいこう! ~ Excel活用HomePage ~

VBAでラクしたい ~Part 2~

こちらのコーナーでは、VBAの使い方を中心にご紹介していきます。
作者自身の経験から書いておりますので、本とかとは違ったコトを
書いてるトコロもあるかもしれません。 そういう場合は、良さそうな方を信じましょう(^_^;
TOPVBAでラクしたい ~Part 2~ > カレントレコード/全レコード件数の表示

カレントレコード/全レコード件数の表示

前回は「新規登録」モードに切り替える部分までは完成致しまして、「修正/削除」モード
の一部も書いてしまいました。

今回は「修正/削除」モードの残り部分を仕上げていきましょう d(^-^ )

まず「新規登録」と違っているのは

・現在操作対象となっているレコードを表示する(レコードの現在位置を示す変数の値を参照)

の部分ですね。


実はこの"レコード表示"の処理は「新規登録」モードに切り替えた時も必要でした(^^;)

なのですが、この部分についてまだキチンと仕様説明ができておりませんでしたので、改めて
ご説明いたしましょう。


例えばレコード数の表示を「現在のレコード番号 / 全レコード件数」とした場合
下記のような関係図になります。

-------------------------------------------------------------------------------------
<モード切替時のレコード表示>

登録済レコード数   「新規登録」切替時   「修正/削除」切替時
全0件              1件目/全1件        0件目/全0件
全1件              2件目/全2件        1件目/全1件
全2件              3件目/全3件        2件目/全2件
・・・
======================================================================================
<"登録"ボタンクリック時のレコード表示>

登録済レコード数    「登録」クリック前   「登録」クリック後
全0件               1件目/全1件        2件目/全2件    
全1件               2件目/全2件        3件目/全3件    
全2件               3件目/全3件        4件目/全4件    
・・・

<"修正"ボタンクリック時のレコード表示>

登録済レコード数    「修正」クリック前   「修正」クリック後
全0件               クリック不可                --     
全1件               1件目/全1件        1件目/全1件    
全2件               2件目/全2件        2件目/全2件    
・・・

<"削除"ボタンクリック時のレコード表示>

登録済レコード数    「削除」クリック時   「削除」クリック後
全0件               クリック不可                --
全1件               1件目/全1件        0件目/全0件    
全2件               2件目/全2件        1件目/全1件    
・・・
--------------------------------------------------------------------------------------

ここで注目していただきたいのが「新規登録」モード及び「登録」ボタンをクリックする前後の
処理部分です。

「新規登録」モードは切り替わった瞬間に、フォーム上のデータをクリアし、新しいデータの
入力待ち状態になります。この時、厳密に言えば「レコードは登録されていません」。
"全レコード件数 イコール 登録済レコード件数" という前提であれば、この表示の仕方は誤りで
あることになります。 

仮にまだ1件もレコードが登録されていない状態で、新規登録モードにした場合

「1件目 / 全0件」

という表示にしたとしましょう。もちろんコレでも間違いではないですよ(^-^
要は「意味付けがあいまいにならないように、しっかりと決めておくことが大事」なのです。

一番最初の段階では、私もただ漠然と「全レコード件数」「現在のレコード番号」みたいな表現
で申し上げました。ですが、こうして突き詰めていくと結構微妙なグレーゾーンに気づきます。

小規模なシステムであるほど、わりとナァナァな形で開発者の意識上だけで処理してしまいがち
ですが、後から「これって何でこうなったんだっけ?」ということにならないように、決めるトコ
は決めて、何か書類に残しておくようにしましょう。

とりあえず今回のシステムでは

「現在のレコード番号 / 全レコード件数」

という表示方式に対し、

・現在のレコード番号 →現在登録中及び編集・削除対象となっているレコード番号
・全レコード件数     →登録済レコード件数(「登録」モードの場合は、登録待機中のレコード
                       1件もプラスしてカウントする)


という定義をしたいと思います。


ふぅぅ(^o^; もうちょっと先まで書きたかったけど、この続きはまた明日ということで


でぁでぁ(^^)/~


TOPVBAでラクしたい ~Part 2~
Copyright (C) 2006 マクロでいこう!. All Rights Reserved.