再び詳細部分を考える
連日暑いですね~。皆様は体調など崩されてはいませんか?(^o^;
一応お知らせなのですが、私もお盆休みなどをとる都合上、8月13日~16日
の期間は休筆させていただきます。
17日からまたUPできると思いますので、宜しくお願いいたします。
尚、励ましのメールは年中無休でお待ちしています。 #で、いいのか?(^_^;
余談になりましたが、前回の続きといきましょう。
この前まとめた仕様に基づきまして、入力フォームの変更点について考えてみました。
-------------------------------------------------------------------------------------
フォーム:FrmDataInput
<フォームに配置するコントロール>
1.「新規登録」 オプションボタン
2.「修正/削除」オプションボタン
3.「登録」ボタン
4.「修正」ボタン
5.「削除」ボタン
6.「前のレコードに移動」ボタン
7.「次のレコードに移動」ボタン
8. レコード数表示用ラベル
------------------------------------------------------------------------------------
一気にボタンが増えましたね(^^;)
そして「オプションボタン」を使ってのモード切替、ラベルを使っての情報表示、なんていう
手法がこれから登場してくるわけです。
そしてそのイメージ画面がこれっす↓(^_^;)
画面01
必ずしもこの並びでというわけではありません。お好みでレイアウトはいぢっていただいて
結構です。
次に処理の詳細を定義しましょう。-------
まずこれまでと違うのは「操作モードの切替」が発生するということです。
つまり「新規登録」モードと「修正/削除」モードを切り替えて使用する形になります。
どちらのモードであるかは、オプションボタンのOn/Offで判断します。
上記の1と2のオプションボタンは1つのグループとして扱い、片方がOnの状態の時、もう
片方は必ずOffの状態になるようにします。
各モードで実行できる処理も制限できるようにします。例えば「新規登録」モードであるにも
かかわらず「修正」ボタンがクリックできてしまうのはヘンですよね。処理上使わない、ある
いは使える状態であってはいけないコントロールに関しては、表示・非表示を切り替えたり、
使用の可否を切り替えたりして対処します。ここでは「使用の可否」を切り替える手法を取り
たいと考えています。
-------------------------------------------------------------------------------------
<処理詳細>
◆「新規登録」 オプションボタン クリック時
・表示を On の状態にし、「修正/削除」オプションボタン表示を Off にする
・「修正」「削除」「次のレコードに移動」「前のレコードに移動」の各ボタンをクリック
不可の状態に設定する
・「登録」ボタンをクリック可能な状態にする
・表示中のデータをクリアする
◆「修正/削除」 オプションボタン クリック時
・表示を On の状態にし、「新規登録」オプションボタン表示を Off にする
・「修正」「削除」「次のレコードに移動」「前のレコードに移動」の各ボタンをクリック
可能の状態に設定する
・「登録」ボタンをクリック不可な状態にする
・現在操作対象となっているレコードを表示する(レコードの現在位置を示す変数の値を参照)
◆「登録」ボタン クリック時
・指定のワークシートから入力済レコードの最下行位置を検出する
・その次の行位置に、現在表示中のレコードを追加する
・表示中のデータをクリアする
・全レコード件数・現在のレコード位置の表示を更新する
◆「修正」ボタン クリック時
・レコードの現在位置を示す変数の値を参照する
・ワークシートの対象行位置に、現在表示中のレコードを上書きする
・画面表示はそのままとする
◆「削除」ボタン クリック時
・レコードの現在位置を示す変数の値を参照する
・ワークシートの対象行位置から、現在表示中のレコードを削除する
・削除後は1つ前のレコードを表示することとし、レコードが無い場合は空白を表示。
・全レコード件数・現在のレコード位置の表示を更新する
◆「前のレコードに移動」ボタン クリック時
・現在位置よりも1つ前にレコードが存在するか調べる
・存在する場合は現在位置の変数を -1 し、該当するレコードを表示する
・ 〃 現在のレコード位置表示を更新する
・存在しない場合はそのまま現在のレコードを表示する
◆「次のレコードに移動」ボタン クリック時
・現在位置よりも1つ後にレコードが存在するか調べる
・存在する場合は現在位置の変数を +1 し、該当するレコードを表示する
・ 〃 現在のレコード位置表示を更新する
・存在しない場合はそのまま現在のレコードを表示する
-------------------------------------------------------------------------------------
ざっと書いてみましたが、いかがでしょ? アタマが痛いですか?(^-^;;;
具体的にどんな処理が発生するのか、ということを整理してみることは非常に大事なことです。
アタマの中だけで組み立てていくと、作っていくうちに組み込むべき処理を忘れたりするもん
ですので。 #わたしもそうσ(^_^;)
上記に加えて「フォーム起動時の処理」っていものがありましたよね d(^-^ )
一番初めの状態をどんなふうにするか、っていう決め事。
とりあえず
-------------------------------------------------------------------------------------
◆「FrmDataInput」フォーム 起動時
・現在のレコード位置を初期化
・全レコード数を検出
・モードを「修正/削除」にする
・初期レコードを表示(1件も存在しない場合は空白表示)
-------------------------------------------------------------------------------------
というふうにしておきましょうか。(^-^;
もちろん起動時は「新規登録」モードの方がイイ、っていう方はそのようにも出来ます。
方法さえ分かれば好きなように変更できるはずですので。
以上今回はここまで~♪(^^)/~
|
|
TOP > VBAでラクしたい ~Part 2~
|