Access実践入門 TOPへ
 ■ マイクロソフトアクセス、帳票入力フォーム1(マクロを使う)
帳票入力フォームとは
フォームには、帳票フォームと単票フォームの2種類あります。
ここでは、帳票フォームを使った入力を説明します。
帳票フォームは、一覧表になっていて、次の行に移ったときに、データが1レコード登録される仕組みになっています。
フィールド数が少なく入力チェックは必要ないようなデータ入力に使います。
マクロを使ってのプログラミング
フォームをメニューから呼び出したり、閉じたりボタンをクリックした時に、何をさせるかという命令をマクロを使って記述していきます。

「住所録Pro.mdb」の中の下記のものを使っています。
クエリー:「qu区分削除」
フォーム:「fo区分」「fo区分削除選択」
マクロ:「ma区分」

まず、マクロの「ma区分」のデザインを見てください


マクロ名と条件の列がない場合は、上のメニューの「デザイン」の、マクロ名と条件をクリックしてください。
マクロは、多くの場合フォームから呼び出して実行します。
たとえば、「ma区分.削除選択を開く」というマクロを呼び出すと、アクションの所にかかれている、処理を上から順番に実行していきます。
一連の処理をいくつでも処理させることができます。

マクロには、たくさんの処理があります。今ここで全てを説明できませんし、全てを覚える必要もありません、サンプルプログラムでの使い方を真似して、コピーして使っているうちに慣れてきますし、サンプルで使っていないものも使えるようになるでしょう。


次に、フォーム「fo区分」のデザインを見てください


フォームの下にウィンドが1つありますが、フォームで使ういろんなコントロールの設定をするためのプロパティなので、常に開いておきます。
開いていない場合は、上のメニューから「デザイン」−「ツール」−「プロパティ」で開いてください。

フォーム全体の設定をします。
終了ボタンの1センチ右のあたり(何もない所)をクリックします。
すると、プロパティのウィンドの表題がフォームになります。フォーム全体の設定ができます。
ここで、見るべき項目は次のものです。
[レコードソース]:入力したいテーブル(あるいはクエリー)の名前をコンボボックスから選択
[表題]:ウインドの左上に出る、フォームの表題
後の項目は、変更する必要は無いでしょう。

ここで大事なことは、帳票フォームを新しく作るときは、以前作ってある帳票フォームをコピーして[レコードソース]と[表題]を変更して作るということです。
新規でフォームを作成すると、もっとたくさんの項目を設定していかなければいけません。
[レコードソース]と[表題]を変更した後、入力項目のコントロールソースを変更するだけで、簡単に帳票フォームは新しく作ることができます。

プロパティの下の方に、○○時というのがたくさん並んでいます。
これは、このフォームで起こるイベント(マウスがクリックされる、閉じる、開く等・・・)の項目が並んでいます。これらの項目発生時にどう処理するかということを指定することによって、プログラムが構築されていきます。
全てのコントロール(フォーム、フォームの中の入力コントロール、ボタン等)に内容は少しずつ違いますが各種イベントがあります。
その内容、使い方に関してはサンプルを見ていただければ、だいたい解ると思います。
全てを最初に理解する必要はありませんし、ほとんど使わないようなものもあります。

それでは、フォームに貼ってある、コントロールを見てみましょう。

・ラベルコントロール
フォームヘッダーにある、区分名のところをクリックしてみてください。
プロパティのウィンドの表題がラベルになっています。ラベルのコントロールです。
これは、入力項目が何であるかを教えるための文字を表示するためのコントロールです。
フォームに中に文字を表示するためのものと考えて下さい。
このコントロールのプロパティの見るべき項目は、次のものです。
[標題]:表示したい文字です。
[名前]はAccessが自動で付けてくれますので、そのままでいいです。
他に、色の設定等がありますが、これはプログラムを作る人の好みですので、気に入ったものをいくつか作っておいて、コピー貼り付けで使えば修正する必要はありません。

・テキストボックスコントロール
詳細にある、区分名のところをクリックしてみてください。
プロパティのウィンドの表題がテキストボックスなっています。データが入力され、実際にデータが表示されるコントロールです。
一番よく使われるコントロールです。
このコントロールのプロパティの見るべき項目は、次のものです。
[名前]:コントロールソースと同じにしておいてください。
[コントロールソース]:コンボボックスから選びます
[書式]:ここは、日付、数値などによって様々なものが入ります。サンプルを参照してください。後でたくさん出てきますので、後で確認できます。文字列の場合は特に入力する必要はありません。
[定型入力]:日付の入力の時などに使います。
[規定値]:ここで指定しておくと、入力前から指定したものが入っています。たとえば生年月日の和暦を入力する欄などでは、昭和を規定値にしておくと実際昭和の人が多いですから、コンボボックスから選ばなくても、そのまま通過できて、入力が早くできるといったものです。
[IME入力モード保持]:いいえにいておきましょう
[IME入力モード]:漢字で入力する場合は、ひらがなにしておきます。オンは使わないでください。データベースをバージョンアップした時に、半角カナとかに変わってしまう場合があります。数値入力の場所は、使用不可にしておきます。オフと使用不可の違いは、オフの場合はキーボードから漢字のボタンを押すと漢字が入力出来てしまいますが、使用不可の場合は漢字ボタンに反応しませんので、漢字入力は不可能です。
[ふりがな]:名前を入力したときに、ふりがなの項目に自動でフリガナを転記してくれます。後の説明で出てきます。
[住所入力支援]:郵便番号を入力すると自動で住所が転記されます。次回の住所録のバージョンで追加予定です。
[可視]:ここをいいえにしておくと、デザイン画面でしか見えません。集計用の日付のコントロールで使っています。後の説明で出てきます。
[使用可能]:いいえにすると、見えるけれど、マウスでクリックしても止まらない項目になります。
[編集ロック]:はいにすると、マウスでクリックすると止まりますが編集はできない項目になります。
[タブストップ]:いいえにするとタブキーで移動していっても、止まりません。フォームの詳細の中のボタン(通常の入力では使わないけど、何かを検索するときだけ押されるボタン等)を貼ってある場合等では便利です。マウスでクリックすれば使えます。

他に、色の設定等がありますが、ラベルコントロールと同じで、プログラムを作る人の好みですので、気に入ったものをいくつか作っておいて、コピー貼り付けで使えば修正する必要はありません。

ここにも、イベント発生時の処理を指定する項目があります。
後の説明で出てきます。

・コマンドボタンコントロール
詳細にある、削除のボタンをクリックしてみてください。
プロパティのウィンドの表題がコマンドボタンなっています。
ここでは必要なときだけ、マウスでクリックしてもらいます。したがって、[タブストップ]はいいえになっています。
このコントロールのプロパティの見るべき項目は、次のものです。
[名前][標題]:同じにしておきましょう。(見栄えをよくするために標題の方にスペースを入れたりする場合有り)
フォームフッターの、終了ボタンをクリックしてみてください。
標題に&Xと付いています。これは、Altキーを押したまま、Xのキーボードを押すと、マウスを移動してそこをクリックしなくても、このボタンがクリックされたのと同じ結果になる、いわゆるショートカットキーの設定です。マウスを使わなくても通常の登録がどんどんできるようにするためのものです。

これは、ボタンですので、クリックされたときに、必ず何か処理があるはずです。
削除ボタンの場合、クリック時にマクロの削除確認のフォームを開くように指定してあります。
終了ボタンでは、自分自身のフォームを閉じるマクロが指定されています。
イベントの発生と処理の書き方が、おわかりいただけたでしょうか?

メインメニューで区分登録のボタンがクリックされた時のクリック時に、このフォームを開くマクロが指定されています。
そこで、このフォームが開きます。
データを入力したり、編集したりします。
終了ボタンがクリックされると、このフォームが閉じられて、下にあるメインメニューに戻るといった具合です。
このようなかたちで、プログラムが構築されていくわけです。

削除クエリー
ここで、削除処理で使っている、削除クエリーについて説明しておきます。

その前に、削除の確認フォームを作っています。
削除ボタンがクリックされた瞬間に削除されてしまっては、困ります。
「何かな?と思ってクリックしたら、消えてしまった」ということになりかねません。
削除とか、データ更新のような、大事な処理の前には、確認画面が必要です。
「はい」、「いいえ」だけを確認するのはフォームを作らなくてもできるのですが、今後の学習に使いますので、あえてテーブル毎に削除選択画面を作っています。

簡単なフォームです。
フォーム「fo区分削除選択」のデザインを見てください。
標題だけ設定されていて、レコードソースがありません。
レコードソースが無いフォームもあるのです。

コントロールも2つのボタンとメッセージのラベルだけです。
削除するか、中止するかだけの処理しかしません。
こういった、小さなメニューのようなフォームはよく使いますので、これを複製して作ってください。

それでは、削除クエリーに移ります。
「削除する」ボタンをクリックした場合、マクロから、クエリーの「qu区分削除」が呼び出されて、実行されます。

それではクエリー「qu区分削除」のデザインを少しながめて、閉じて下さい
実際に同じものを作ってみます。
クエリーも、テーブルと同じで、新しいプログラムを作る時には、1つずつ作っていかなければなりません。

削除クエリーは次の手順で作ります
データベースウィンドでクエリーを選びます。
新規作成をクリック。
ウィンドが開いて、一番上のデザインピューが規定値で選ばれていますから、OKボタン
テーブルの「ta区分」を選んで、追加ボタン
閉じるボタンで、テーブルの表示ウィンドを閉じます。
テーブルの表示ボタンは、上のメニューから「デザイン」「クエリ設定」の中の「テーブルの表示」でいつでも出せます。
白紙のクエリーに「ta区分」が1つあります。
上のメニューから「クエリー」「削除」で削除クエリーにします。
「ta区分」の中から、区分名をドラッグアンドドロップで、下の空白の左端の列のどこでもいいですから、落とします。
その列の抽出条件にマウスをもっていき、右ボタンをクリックします。
ウィンドが開きますから、ビルドをクリックします。
いろんな条件式等の入力を助けてくれる、ウィンドが開きます。
下の左端の窓のフォームをダブルクリック、その中の、すべてのフォームをダブルクリック。
そうすると、「fo区分」が下の方にありますから、それをクリック。
中央の窓の区分名をダブルクリック。
最後に右上のOKボタンをクリック。
抽出条件は入りました。
「ta区分」の中の一番上にある、"*"(アスタリスク)をドラッグアンドドロップで、抽出条件の設定をした列の右の列のどこでいいですから落とします。
完成しました!
クエリーをウィンドの右上の×をクリックして閉じます。
名前を聞かれますので、名前を付けて保存する。(ここではキャンセルしておいてください)
このような流れになります

慣れてくれば簡単な作業です。
他のクエリーを作る場合も、同じようなで順です。
通常新規でクエリーを作ると選択クエリーが作られます。

今作った削除クエリーは、左端に抽出条件、隣の列に削除されるテーブルがあるといった感じです。
左端の抽出条件のないクエリーを作って実行した場合は、そのテーブルの全てのデータが削除されます。作業用の一時データを保存するテーブルを削除するときに使われます。これは後の説明で出てきます。