VBでMSAccessの様に動かす・・・
これに至るまでに長かったこと。。。
この問題の最大はなんと言っても表形式フォームの表現だろう。
なんだかんだ言われたい放題のMSaccessだがこの表形式フォームの機能はよく考えられていると思う。
ただの表示だけならVBでもなんとかなる…何度もそう思った
問題は入力する表形式フォームで複雑に制御をしなければらなない場合だ。
特に入力の値に応じてEnterによるTab移動を駆使するといったことを実現出来るものはVBで用意されたコントロールにはないということだ。
この制御はMSAccessにとってたやすい表現であった為、VBにもあるのでは?という甘い期待を抱いていたのだが実現が難しいというのが分かるまでに長かった。
そうするとTextBoxをひたすら配置するしかないという結論である。
MSAccessの様にVBを使う条件
●一覧で表示する場合行数が未定の場合に使い分けるコントロール
A) DataGridview
これは1行で表示出来るものに限られる。
EnterでのTab移動は単純な動きだけは可能なので編集する場所が少ない場合に有効である
B)DataRepeater
表示だけなら1行の中に自由にテキストボックスを配置が出来てAccessの表形式フォームの見栄えが簡単に出来る
しかしVisualBasicPowerPack3.0をインストールしてから使用するものなので配布時に注意する必要がある
すごく期待したがこれもEnterのTab移動が困難
C)ListView
これはAccessで言うリストボックス。そう思って使おう
なれればかなり便利。それほど難しくないし
D)TextBoxを力技で配置
入力インターフェイスを自在に行うのならやはりこの方法
入力行数を固定して使う
それよりデータが多い場合はページング処理を施す
それでもう一つ重要な条件で、クエリは手書きです。AccessのGUIみたいなものはありません。あるにはありますが実現できることはかなり制限されます。クエリのGUIからの脱却は考えることです。(あれに変わるわかりやすいものはないと思いますが・・・)
という具合の住み分け方法に落ち着いた。
後にそのTextBoxの力技で配置の大まかな方法をレビューしようと思う。
0 件のコメント:
コメントを投稿