データ一覧フォーム その2 初期処理 [Form一覧画面]
その1からの続きです。
フォームが呼び出されて、画面が表示されるまでに行う処理を説明します。
1.表示・入力用コントロールの初期化
だいたいの画面には、入力をしてもらう為のテキストボックスや、情報を表示する為のコントロールがあるので、そのへんを初期状態(使う人の目に触れて見苦しくない状態)にします。
テキストボックスとかは、プロパティで規定値を設定できますが、私はいちいちNullを設定するのが好きです。
このサンプルでは、右上に検索入力用のコンボボックスを付けていますので、そこをクリア(何も入力されていない状態に)します。
あ、ついでにフォームの最大化もしてます。
画面が開く時の処理なので、「開く時」(フォームオープン)のイベントに処理を書いていきます。
Private Sub Form_Open(Cancel As Integer)
'フォームオープン
'初期化処理
DoCmd.Maximize
Call subINIT
Call subCLR
End Sub
Private Sub subINIT()
'画面初期化
Me.txtCOMCDF = Null
Me.txtCOMCDT = Null
Call subSQL
End Sub
初期化処理を「subINIT」プロシージャに分けて書いています。何でかというと、後々このフォームを使い回したりするときに分かり易くするためと、フォームによっては画面の状態を変えつつ処理を進めて、1つの処理が終わったら最初の状態に戻す、というときに、Call subINIT一発でどこでも戻せるから。
と、もう一つプロシージャで「subCLR」というのを呼んでますが、こっちは、入力処理用のテキストボックスのクリア処理になります。詳細は、データ登録の説明で。
と、紛らわしくて申し訳ないのですが、この画面にあるのはコンボボックスなのに、名前を「txtCOMCDF」としています。
プログラミングの定石から言うと、ルール外れなんですが、私は面倒臭いのでこうしてます。入力系の画面とか作る場合、テキストボックスにするか、コンボボックスにするか揺れることがあって、後で変わった場合に修正するのが嫌なので。というか、コンボボックスはテキストボックスに入力補助がついた様な感じで、コンボボックスだから特別なロジックを書くことはほとんど無くて、書き分けるほうが不自然に感じてですね・・・。言い訳ですが。
2.サブフォームの初期化
サンプルのサブフォームは、ただの一覧なので、今回は初期化処理は特になしと言うことで。
本当は、と言うか、本当のシステムになると、対象データがうん千万件とかになることもあるので、最初にレコードソースの付け方とかを工夫しておかないと大変な事になります。画面を開いたときに表示されるデータを、あらかじめ絞られた状態にしておくとかですね。
その辺はまた追々と言うことで。
つぎは、絞り込み機能の作り込みです。
その3へ続く。
コメント 0