Linuxサーバより愛を込めて。

Linux(Ubuntu)サーバとダーツを愛する中年サラリーマンの日記。

Microsoft Office

Accessのメニュー用フォームビルダでメインメニューを作ってみる その2

2015/04/01

 

前回、フォームの画面を作るところまでと大雑把な仕組みをみるとこまでいきました。

 

今回はメニューに機能を追加するとともにその中身を調べてみることにします。

 

ボタンに機能を割り当てる

まずはメニューに機能を割り当ててみましょう。メニューフォームビルダを起動します。

メニューフォーム2

 

 

ここで「編集」をクリックするとメニューに機能を追加することができます。クリックすると

メニューフォーム6

 

 

「メニュー用フォームの編集」という新しいウィンドウが開きました。

 

「Main Switchboard」というメニューがあるんですが、今のところメニュー項目は空白になっています。そこで「新規」ボタンをクリックしてみます。

メニューフォーム7

 

 

入力する項目が3つありますね。順を追ってみると

  1. 文字列・・・メニューボタンに表示する文字
  2. コマンド・・・ボタンをクリックしたときの動作
  3. メニュー項目・・・そのボタンを表示するメニュー

 

分かり辛いので実際に設定してみます。今まで作ってきた家計簿を例に使ってまずはマスタメンテナンス用のメニューボタンを作成してみます。この場合は

メニューフォーム8

 

 

という具合に入力してOKを押してみます。

メニューフォーム9

 

 

どうやら「マスタメンテナンス」というメニュー項目が作成されたようです。それではフォームビルダを閉じてメニューフォームを開いてみましょう。すると・・・

メニューフォーム10

 

 

「マスタメンテナンス」というメニューボタンが作成されたようです。ではSwitchboard Item」テーブルはどうなったでしょうか?見てみましょう。

メニューフォーム11

 

 

レコードが1件追加されていることが分かります。ここでもう少し機能を追加してみます。

  1. Main Switchboardから移動先のマスタメンテナンスメニューを作成
  2. Main Switchboardに家計簿を終了するボタンを作成
  3. マスタメンテナンスメニューから費目マスタメンテと摘要マスタメンテのフォームを開く
  4. マスタメンテナンスメニューからMain Switchboardメニューに戻る
  5. 入出金メニューを作成
  6. 入出金メニューから入出金金額入力フォームを開くボタンとMain Switchboardへ戻るボタンを作成

 

これらをまとめて追加した後のフォームとテーブルのデータを見てみます。

 

まずはマスタメンテナンスメニューを。「費目マスタメンテナンス」、「摘要マスタメンテナンス」、「戻る」のボタンが作成されています。

メニューフォーム12

 

 

こちらは入出金メニュー。

メニューフォーム13

 

 

また、Main Switchboardメニューに終了ボタンが作成されています。

メニューフォーム14

 

 

続けてSwitchboard Itemsテーブルのデータを見てみると

メニューフォーム15

 

 

レコードが増えました。各フィールドに色んな値が記録されているのがわかります。

 

テーブルとフォームの関係

フォームビルダで機能を追加するたびにレコードが作成されていくことが分かりました。このテーブルのデータを見ていくと・・・

  1. 設定した動作によってCommandの値が変わる
  2. Argumentに動作の対象となるメニュー番号やオブジェクト名が格納される
  3. ItemTextがボタン横のテキストボックスに格納される

 

らしいことが見て取れます。今回は使用していませんが「レポートを開く」や「フォームを編集モードで開く」、その他幾つかの動作が選択でき、動作に該当する数字がCommandに登録されます。

 

メニューの表題はItemNumberが0で登録されていることも分かると思います。

 

データの構造が見えてきたところで次回はフォームに埋め込まれたVBAを見ながら機能を分析してみます。

-Microsoft Office
-,