Microsoft Access Club >初心者講座 >CDアルバム管理ソフト >このページ >次頁 - 前項


各種機能等の追加及び修正 : CDアルバム管理ソフト12



本来は、このNo.12で""終了を予定していましたが、作成中のアプリに少し言葉足らずや機能不足があって、追加・修正に迫られております。そこで、No.13を新たに設けて、そちらに「スタートアップや基本メニューフォーム」を取り上げます。

印刷選択フォームの作成

以前作成したrpt_mainレポートには、これを制御するフォーム(抽出機能やプレビュー・印刷の区分を制御する)を作成していませんでしたので、今回 このフォームを作成します。

アーティスト名での抽出を前提に進めます。非連結のコンボボックス(名前は"選択")を配置します。

  1. この「値集合ソース」には、SELECT tbl_main.アーティスト名 FROM tbl_main GROUP BY tbl_main.アーティスト名 ORDER BY Count(tbl_main.アーティスト名) DESC; を記述して下さい。
    これは、SQL文です。Accessがクエリに自動変換してくれます。
    これは以前にも作成しましたので、分からない方はこちらを参考にして下さいね。
  2. 次に、コマンドボタンを2個配置します。
  3. 名前はそれぞれ、"プレビュー"と"印刷"として下さい。
  4. 表題もそれぞれ"印刷プレビュー(&A)"、"印刷(&B)"とします。
    この"(&A)"と記述することで、キーボード操作の「Alt+A」でコマンドが実行できるようになります。
  5. コマンドボタンの「クリック時」イベントにマクロを配置し、レポートrpt_mainのレコードソースであるクエリに抽出条件を設定します。
  6. 下記のMsgbox関数については、ここをクリックして下さい。

ポップアップ と 作業ウィンド固定
まず、これらの違いを見ていきましょう。
ポップアッププロパティ

これを はい にすると、フォームを開いたときに常に最前面に表示される状態に なります。しかし、続いて開かれたフォームが、同じくポップアップをはいにしてあれば隠れてしまいます。フォーカスも開いているフォーム何れにも移動させることができます。

作業ウィンド固定プロパティ

これを はい にすると、常に最前面にフォーム が表示される状態になります。フォームを閉じるまでフォーカスは他のオブジェクトに移すことはできませんし、メニューバー操作もできません。

注意点

特に注意するのは、作業ウィンド固定プロパティ です。

これを"いいえ"に設定すると、複数のフォームが立ち上がったとき、操作ミスで目的のフォームが他のフォームに隠れてしまいます。
また、メニューバー操作ができるので、画面右上のAccessを閉じるボタン等を押すなど、ユーザーが管理者の意図した操作以外を実行してしまう可能性があります。

コンピュータの解像度が異なる場合(特に大きくなる場合)に、この問題が表面化しがちです。

クエリの抽出条件設定

次に、レポート「rpt_main」のクエリに抽出条件を設定します。これによって、アーティスト名を抽出条件としてレポートが表示されます。

上記のLike [Forms]![frm_print]![選択] & "*" は、Like演算子を利用してコンボボックスでアーティスト名の選択がなければ、全データを表示します。この機能は便利ですよ。重宝して下さい。

但し、似たような名前のアーティストがあれば、併せて表示されてしまう欠点があります。それが嫌な場合は、Like と &"*"を削除して下さい。

フォームごとにマクロを作成

今回のソフト作成では、フォームごとにマクロを作成しています。

マクロの作り方としては、下記のような統一方法があります。

  1. このようにオブジェクト(例えば、frm_A、frm_Bといったオブジェクト)ごとに作成する方法

  2. アクション(例えば、開く、閉じるといったマクロアクション)ごとに作成する方法

何れを選ぶかは、作成者の好き嫌いの範囲です。

今回は、手間が増えますが見易さの点と第三者の保守管理のことを考えて、オブジェクトごとに作成する方法で進めています。

マクロをVBAに変換

マクロをVBAに変換することができます。この利点は、より複雑な制御を行いたい場合や、セキュリティーを強固にしたい場合などです。

変換方法は、

  1. 対象のフォームやレポートをデザインビューで開き、

  2. 「ツール」の「マクロ」から「…VBAに変換」をクリックして下さい。

  3. 下記メッセージが表示されますので、以降はその指示に従います。

エラー処理コードを追加する

何か予期しないエラーが発生した場合、エラーメッセージを表示させ処理を中断させるプロシージャを追加することを意味します。
VBAでは、適切なエラー処理コードを組み込んでいないとハングアップ(PCが停止)の危険性がありますので、できるだけ"チェック済み"にして下さい。

コメントを含める

マクロのコメント欄の記載事項をそのままVBAにもコメントとして残すことを意味します。 当然、マクロにコメントを記述していないなら無視して下さい。
なお、 マクロもVBAも可能な限り"コメント"を記述するようにして下さい。月日が過ぎると作成者でさえ、マクロやVBAの組み立て方、関連先を忘れてしまうのが通例です。

VBAの変換事例

下記のとおりです。緑色の文字はコメントですから、万が一削除しても問題ありません。

 

マクロからVBAに変換後は、データベースウィンドウにある変換元マクロを削除しても問題ありませんし、残されても 動作に支障は生じません。

 

次は、"スタートアップフォーム"とアプリケーションの目次である"インディックスフォーム"の作り方をお話します。

 

ページの先頭へ 前ページへ戻る

 


各種機能等の追加及び修正 : CDアルバム管理ソフト12


 

-Microsoft Access Club-