2012/12/23

アクセスのフォームやレポートを自在にカスタマイズする


マイクロソフトアクセスのフォームやレポートのコントロール群(ボタン、テキストボックス、タブ)などを細かく一つ一つ設定したり、背景色を変更するのは大変です。
それらを一気に変更できないかと思い、この2年ぐらい(の中の2ヶ月ぐらい)ぼちぼちプログラムを作っていました。もっとも大変なのはタブコントロールです。タブコントロールを作成する時には必ず子コントロールとしてページが二つ作成されてしまいます。これらをどう処理するかを悩みました。他にはひとつのコントロールのプロパティを変更すると他のコントロールに干渉する場合があり、それをどう避けるか。リードオンリープロパティの処理をどうするか。プロパティの中身がバイナリの場合どうするか。

まだ完全ではありませんが、このほど動くようになりましたのでご報告いたします。

<想定しているユーザー>
1)かなり大きなアクセスのプログラムを使用して業務を行なっているユーザー
2)コントロールのプロパティにかなり変更を加えているが、メジャーバージョンアップなどをするときに、そのプロパティの引継ぎが大変だと感じている人
3)アクセスプログラムのカスタマイズを業務としている人

<概要>
二つの部分に分かれています
1)追加したオブジェクト(テーブル・クエリ・レポート・フォーム・モジュール)を調査し、それを引き継ぐ部分
2)追加・削除・変更したコントロールを調査、そのプロパティを保存し、それを引き継ぐ部分

<動作要件>
素性のよいコンピューター。ACCESS2000以上。

<著作権について>
株式会社ダイナミクスのコードを流用した部分があるため、使用する場合には株式会社ダイナミクスの許可を得て欲しい。

<サポート>
内容をよく理解できている方からの質問は喜んでお受けします。

<命名>
電子カルテダイナミクスを壊しちゃう事があるので「Dynamite(ダイナマイト)」と命名していたところ、吉原先生から「Dynamate(ダイナメイト)」の方がフレンドリーでええんとちゃうん?という事で、そう変更されました。

<ダイナメイト(Dynamate)の使い方>

① カスタマイズしたクライアントを選択しましょう。[探す…]ボタンを押しましょう。

② まっさらクライアントを選択しましょう。下の[探す…]ボタンを押しましょう。
[↑まずは比較↓]ボタンを押してみましょう。左下のサブフォームに、カスタマイズにより追加されたオブジェクト(テーブルやクエリ、フォームやレポートなど)が読み込まれるはずです。
必要な物を[読込して保存]しておきましょう。
④ このテーブルに手動でクエリ名を追加したりすることもできます。カスタマイズの際に、クエリ名は変更しないことが多いからです。オブジェクトの差分について良く理解している方はこの説明ですぐにわかるはずです。わからない方にはこのソフトの理解は無理です。諦めて下さい。
⑤ 右下のサブフォームには、コントロール(タブやボタン)をカスタマイズしているフォームやレポートの名前を入れます。インポートするものについてはチェックボックスに印を入れましょう。レポートについてはまだ出来ていません。どなたかサンプルを下さい。
[インポートして分析]ボタンを押してみましょう。しばらく時間がかかりますが、右の領域に指定したオブジェクト(フォームやレポート)のプロパティについてかなり詳細に分析を行います。(すべてではありません)


① ここで、[差分を分析]ボタンを押してみましょう。次の画面に移動します。

オブジェクトの調査画面というのが出てきます。ここでさらにカスタマイズしたければ、各フォームやレポートを確認して下さい。このまま解析する場合には[①カスタマイズ/インポートしたFormとReportの情報収集]というボタンを押しましょう。もう一度カスタマイズしてやり直す時には、[カスタマイズ/インポートしたFormとReportの消去:]というボタンをダブルクリックしてからまた[①~]ボタン
を押しましょう。
② 右のボタン群を押してみて下さい。
③ するとクエリが表示されます。追加されたり変更されるコントロールの概要がわかります。

④ OnClickイベントが、[EventProcedure]となっているコントロールには注意が必要です。追加されたオブジェクトはこのままでは動作しません。必ず、関数呼び出しをする必要があります。(場所を移動するだけ、と言ったカスタマイズの場合には[Event procedure]のままでもちろん構いません。関数は通常、標準モジュールの中にPublic Function hogehoge()… End Functionとして定義します。画面内にあるSET_DG_1C(1) というのはこの関数です。標準モジュール内に作ったユーザーの独自関数は、その標準モジュールをインポート/エクスポートすることによって動作します。ACCESS2007移行、Develper Extensionsは標準機能ですが、ACCESS2000形式のファイルでは動作しませんので、Visual Source Safeを使ったコードのやり取りは出来ません。したがって、独自関数を収めた標準モジュールを自分で作って下さい。
⑤ 終了したら[閉じる]ボタンを押して下さい。


① 細かく指定したい場合には、次の画面で行いましょう。

[カスタマイズの準備]ボタンを押しましょう。これにより4つのテーブルが作成されます。T_BUTTON_ADD T_BUTTON_DELETE T_BUTTON_PROPERTY T_BUTTON_PROPERTY_ADD です。

③ それぞれのテーブルの意味は、分かる人にはわかると思うのですが、これが削除/作成されるコントロールのデータと、変更されるプロパティのデータの最終型となります。ここでさらに細かく手動でプロパティを変更することができますし、最初からこのテーブルを作成して、無からデザインされたフォームを作ることも可能です。
④ 他人にカスタマイズしたものを譲りたい場合にはここまで作業しておけばOKです。(動作確認は念入りにしてください)
⑤ 多くのエラーは、きちんと動作確認をしていなクライアントで作業を行う事により生じます。また追加していたテーブルへのリンクはエラーのもとになる場合があります。
⑥ 準備ができたら[カスタマイズ]ボタンを押してしばらく待ちましょう。メモリが足りないと、右のメッセージが表示されますが、「はい」と答えて進みましょう。

⑦ そして[エクスポート]ボタンを押しましょう。


① エクスポートするオブジェクトをここで最終的に選びましょう。

[差替えオブジェクトの更新]ボタンを押しましょう。
[Export]チェックボックスをオンにしましょう。
④ すべて準備ができたら[差替ダイナへ]ボタンを押して次に進みま
しょう。
⑤ この部分には株式会社ダイナミクスの差替ダイナを使わせていただきました。ありがとうございました。使い方は同じです。

⑥ うまくいったらおめでとうございます。エラーが起きたらログを見ましょう。

以上のプログラムについて、使用をしてみたい方は当方までご連絡をお願い申しあげます。基本的には株式会社ダイナミクスのアクティブユーザー、積極的にメーリングリストに参加されているサポート業者さんをまずは優先いたします。皆様に役立つツールになりますように。

0 件のコメント:

コメントを投稿