MS Access Tips/Sample and VBA and Blog customize etc...

同じフォームを複数表示する その2

タイトル画像

前回、同じフォームを複数表示する で一つのフォームから複数インスタンスを作成して、複数表示する方法を紹介しましたが、インスタンスを配列に格納するため開くフォームは固定数になります。固定数ではなく、ユーザーが自由にいくつでも開いたり、閉じたりする方法を検討してみました。

難易度:

FrmMultiAni.gif
↑クリックでアニメーションGIFが開きます。

マルチドキュメントインタフェイス(MDI)というものになりますが、ちょっと前まではよく見られたのですが、最近は、SDIでタブなどにより切り替えるのが主流になってきました。タブ方式は操作がシンプルでいいのですが、複数のデータを見比べながら入力操作などをしたいときは、MDIが便利な状況もまだまだあると思われます。

方針


前回は、配列にフォームのインスタンスを格納しましたが、それでは、数の増減に対応できません。動的配列も考えられますが、途中のフォームを閉じたときのインデックスの処理が面倒です。任意の追加、削除が簡単にできるとなると、Collectionオブジェクトか、Scripting ランタイム のDictionary オブジェクト が考えられます。今回は、VBネイティブのcollectionオブジェクトを使ってみました。Dictionary オブジェクトでも同様の処理が可能だと思います。


サンプル作成


社員
社員コードフリガナ氏名在籍支社部署名
105モリウエ イクマ森上 偉久馬東京本社第一営業
107カツラギ コウシ葛城 孝史東京本社第二営業
110カトウ ヤスエ加藤 泰江東京本社第一営業
204カワムラ タダシ川村 匡大阪支社営業開発
207マツザワ セイイチ松沢 誠一大阪支社営業開発
210ナルミヤ マキ成宮 真紀大阪支社営業一
304ヤモト マサハル山本 雅治北九州支社営業一
305アオキ トシユキ青木 俊之北九州支社営業一
307オガワ サヨコ小川 さよ子北九州支社営業二

前回と同じ社員テーブルから単票フォーム「社員データ」を作成します。

メニューフォームにコンボボックスを配置します。

プロパティ設定
プロパティ設定値
名前cmb社員
値集合タイプテーブル/クエリ
値集合ソースSELECT 社員.社員コード, 社員.氏名 FROM 社員;
連結列1
入力チェックはい
列数2
列幅0

コマンドボタンボタンを配置します。

プロパティ設定
プロパティ設定値
名前cmd2
標題社員データ

メニューフォームのモジュールは下記のようになります。

「社員データ」フォームのモジュールは下記のようになります。

以上で、ユーザーはコンボボックスから社員を選択して、ボタンクリックで新しく該当社員のフォームをいくつでも開くことができます。また、不要になったフォームは閉じることもでき、また、必要になったら開くこともできます。

サンプルファイルが下記からダウンロードできます。
FrmMultiInstance_07.zip (Access 2007-2010 形式 - 37kb)
FrmMultiInstance.zip (Access 2002-2003 形式 - 30kb)
FrmMultiInstance_2k.zip (Access 2000 形式 - 28kb)

前回の 同じフォームを複数表示する のサンプルも同封されてます。

拍手する

3 Comments

スナフキン says..."ごぶさたしています。"

多分できないのでしょうが...
単票にサブフォームが含まれてる場合って可能なのでしょうか?
もし知ってたら教えてください^^;;

2011.04.05 09:49 | URL | #ZpAXj7wg [edit]
hatena says..."サブフォームが含まれてる場合"

サブフォームが含まれていても、可能だと思います。
試してみてください。

2011.04.05 12:52 | URL | #5uE6dEgY [edit]
スナフキン says..."すみません。できました。"

これ想定してVBA書いてないとダメですね^^;;
動作はしました

2011.04.05 16:03 | URL | #- [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/5-1e0aa717
該当の記事は見つかりませんでした。