| 1 |
9の「ボタンを作ろう」では、フォームを閉じる命令を指定する為の基になる命令を登録しておくマクロを作成しました、おさらいとして「書籍の登録」フォームを閉じる為の基になるマクロとして「フォーム操作マクロ」の内容を確認した上で「書籍管理」データベースで説明していないマクロの使い方を説明したいと思います |
|
【 参考 】
上は基になる「フォーム操作マクロ」をデザインビューで開いた状態です、左から「マクロ名」、「アクション」、「コメント」と表示されています、下のワンポイントにも書きましたが、マクロは細かい処理の条件していも可能なので「条件」欄の表示も行って下さい、項目の内容を簡単に説明すると マクロ名 例から説明すると「フォーム操作マクロ」内の「書籍登録閉じる」というマクロの名前ということになります、この名前は自由に指定できるので、自分がなんの処理を行うか分かるように名前付けをすると良いと思います、フォームで作成したボタンに処理を設定する時にはこのマクロ名を選ぶことになります アクション 例から説明すると「閉じる」となっていますが、この他にも実行したい内容の選択が色々とあり、アクセスで難しい言語を使用しないでプログラムを作成する場合に一番使用するであろう「クエリを開く」も含まれます、要するに「書籍登録閉じる」マクロを実行すると、アクションの開くが実行され、その内容は「アクションの引数」部分の「書籍の登録」フォームを閉じるという内容となります コメント この部分は、このマクロのこの行に対してなにを行っているのかを忘れない為に使用すると良いと思います、処理には直接関係していないので自由に使って下さい、自分はアクションの引数でオブジェクトを指定した時に、コメント欄へ指定した内容をコピーする様にしています、こうすることで処理の内容や順番を視覚的に確認することが出来ますのでお奨めします 条件 マクロのこの行に対する実行の条件を指定します、書籍管理のサンプルでは使用していませんが色々と活用方法があるので後で詳しく説明したいと思います
【ワンポイント】
※新規作成したマクロにはマクロ名の表示が無いので、画面一番上に表示されている 「マクロ名」ボタンをクリックして、マクロ名の欄を表示させて下さい。 ※同じく処理の細かい条件指定をして処理を実行できることを後で説明するので、「マクロ名」ボタンの右横にある 「条件」ボタンをクリックして「条件」の欄を表示させておいて下さい。 |
|
|
| 2 |
書籍管理では「開く」とか「閉じる」という様な内容のマクロしかありませんが、本来のアクセスの醍醐味はクエリの組み合わせによる処理の実行と思いますのでその部分を中心に説明したいと思います、ここからは書籍管理データベースには無い内容になります、まずは例として使用するテーブルを作成して見ましょう、05の「よし!テーブル作成」でも説明しましたが、おさらいの意味でもう一度説明します |
|
まずオブジェクトの「テーブル」を選択して、「新規作成」を選択します

テーブルの新規作成ダイアログが表示されるので、デザインビューを選択して「OK」を押して下さい
【ワンポイント】
簡単にテーブルが作成できるウィザードも選択にありますが、後々自由に自分のデータベースを作成しようと思ったらデザインビューで作成していった方が理解が早いと思います
|
|
|
| 3 |
フィールド名に「最初の値」、「次の値」、「結果」の3種類のフィールドを作成します、データ型はそれぞれ「数値型」に設定します、このテーブルに入力したデータを基に、クエリを使用したデータの更新を実行してみたいと思います、まずは基になるテスト用のテーブルを作成したいと思います |
|
フィールドにそれぞれ例を参考にフィールド名とデータ型を設定します

画面を で閉じると保存を確認してきますので「はい」を選択します

テーブルに付ける名前を聞いてきますので「マクロ使用方法のテスト」という名前を入力して「OK」を選択します

「主キーが設定されていません」の表示が出ますが、今回は特に指定する必要が無いので「はい」を選択します

テーブルの一覧に「マクロ使用方法のテスト」のテーブルが表示されます |
|
|
| 4 |
テーブルの準備が出来ました、いよいよ「マクロは便利だな」の本題に入ります、実際にマクロを使用して一つの処理を実行して行きます、内容としては作成した「マクロ使用方法のテスト」テーブルの「最初の値」フィールドに入力した内容と「次の値」フィールドに入力した値を足し算して「結果」フィールドに計算結果を自動で登録(更新)するクエリを作成します、そのクエリをマクロへ登録して処理を実行します、冒頭でお話した「条件」も忘れてはいけませんね、「条件」は計算を開始する前に処理を実行するかしないかを聞いてくる「条件」を設定してみます |
|
まずオブジェクトの「クエリ」を選択して、「新規作成」を選択します

クエリの新規作成ダイアログが表示されるので、デザインビューを選択して「OK」を押して下さい
【ワンポイント】
クエリとはAccessに対して命令するプログラム言語の様なものです、でも決して難しいものではありません、画面をイメージしながら作成できるので安心です
簡単にクエリが作成できるウィザードも選択にありますが、後々自由に自分のデータベースを作成しようと思ったらデザインビューで作成していった方が理解が早いと思います
|
|
|
| 5 |
マクロに登録するクエリを作成します、このクエリに指定した値を計算する方法を登録することで、このクエリを実行する度に同じ計算を実行することが出来ます、ここでは「最初の値」、足す「次の値」イコール「結果」という一つの計算を行うクエリの作成ですが、応用として「結果」×「単価」イコール「金額」というクエリを作成して実行すると、金額まで自動でテーブルに登録することも可能になります(この場合「単価」と「金額」の項目もテーブルへ作成しておかなければ計算できません) |
|
デザインビューを選択すると処理を行うデータを参照するテーブルを聞いてきますので、テストで作成した「マクロ使用方法のテスト」テーブルを選択して「追加」ボタンを押します、指定したテーブルがクエリのデザインへ追加されるので続けて「閉じる」を選択します

表示された「マクロ使用方法のテスト」テーブルの「結果」をダブルクリックすると、下の欄のフィールドに「結果」が登録されます、クエリは新規作成時には「選択クエリ」になっているので、これをデータを更新するクエリである「更新クエリ」に変更する為に、クエリの種類ボタンで「更新」を選択します
 下の欄の表示が「選択クエリ」の表示から「更新クエリ」の表示に自動で変わります、選択クエリの場合は「並べ替え」と「表示」となっていましたが、項目が「レコードの更新」に変更されています、この欄をクリックしてカーソルを置いてから上の ボタンを押します
 「式ビルダ」が表示されるので左下の枠の「テーブル」をダブルクリックして、表示されたテスト用のテーブル「マクロ使用方法のテスト」をクリックします、すると真ん中の枠にテーブルの項目が表示されるので「最初の値」をダブルクリックします、すると上の枠に「[マクロ使用方法のテスト]![最初の値]」と表示されます、この表示内容は[テーブル名]![項目名]を表していて、手で入力することも可能ですがこの手順で入力した方が入力ミスが無く良いと思います
 今回作成するのは「最初の値」の項目と「次の値」の項目を足し算するクエリなので、中央一番左の+ボタンを押して、続けて真ん中の枠の「次の値」をダブルクリックします、すると上の枠に先ほど入力された式に続けて+と「次の値」の式が追加入力されます、これで足し算の更新クエリの作成は完了です、右上の「OK」ボタンを押して終了させます
 クエリの「レコードの更新」欄に作成した式が登録されます、画面を で閉じます
 保存を確認してきますので「はい」を選択します
 クエリに付ける名前を聞いてきますので「足し算の計算」という名前を入力して「OK」を選択します
 クエリの一覧に「足し算の計算」の更新クエリが表示されます |
|
|
| 6 |
ここまでで計算をする値と結果を保存するテーブルの作成、実際に計算を行うクエリの作成が完了しましたので、実際にマクロに登録を行って行きます |
|
まずオブジェクトの「マクロ」を選択して、「新規作成」を選択します

新規作成したマクロにはマクロ名の表示が無いので、画面一番上に表示されている 「マクロ名」ボタンと条件指定をして処理を実行するので「マクロ名」ボタンの右横にある 「条件」ボタンをクリックして「条件」の欄を表示させて下さい。
 上を参考にマクロ名に「足し算の計算」(この名前は好きな名前でOKです)、条件に「MsgBox("計算を実行しますか?",1)=2」(この条件はこのマクロを実行した時にメッセージボックスを画面に表示して「OK」を押すと次のアクションの「クエリを開く」を実行して、「キャンセル」を押すとすぐ横の「マクロの中止」アクションを実行する選択画面を表示します)、アクションに「マクロの中止」(「キャンセル」を選択した場合のアクション)、次のアクションに「クエリを開く」を選択して下のアクションの引数欄に実行するクエリ名に作成した更新クエリの「足し算の計算」を選択します、アクション及びアクションの引数は ボタンが入力欄に表示されるので、ボタンを押すことでアクションの種類や作成してあるクエリを表示して選択することが出来ます、マクロへの登録が終了したら画面を で閉じます
 保存を確認してきますので「はい」を選択します
 マクロに付ける名前を聞いてきますので「計算マクロ」という名前を入力して「OK」を選択します、これでマクロは完成しました
 マクロの一覧に作成した「計算マクロ」が表示されます |
|
|
| 7 |
次にデータを実際に入力するフォームと計算を行う計算マクロを関連付けて結果が表示されるか確認したいと思います、データを入力するためのフォームを作成してみましょう、07の「データ入力画面作成」と同じ手順で入力用のフォームを作成します |
|
まずオブジェクトの「フォーム」を選択して、「新規作成」を選択します

フォームの新規作成ダイアログが表示されるので、「オートフォーム:表形式」を選択して「基になるテーブルまたはクエリの選択」で、作成した「マクロ使用方法のテスト」テーブルを選択して「OK」を押して下さい
※フォームについての詳しい作成は「07.データ入力画面作成」を確認して下さい

「マクロ使用方法のテスト」テーブルを基にしたフォームが自動で作成されて表示されるので画面上の を選択してフォームをデザインビューで開きます

デザインビューが開いたら画面上の プロパティを選択します

表示されたプロパティの「イベント」タブを押して、その中の「閉じる時」イベントに作成した「計算マクロ」の「足し算の計算」マクロ名を選択します、このマクロ名は ボタンを押すと作成したマクロの一覧が表示されるのでその中から選択することで簡易に登録できます、登録が終ったら を押してプロパティを閉じます

マクロのフォームへの登録が完了したので画面を で閉じます、保存を確認してきますので「はい」を選択します

しテーブルの名前がフォーム名に既に入力された状態になっているので、その後ろに「入力」や「登録」など、後でフォームを見た時に分かる名前を付けて「OK」を選択します

フォームの一覧に作成したフォーム名が表示されます |
|
|
| 8 |
ここまででクエリとマクロを活用したテーブルの結果更新の仕組みが完成しました、実際にフォームへデータを入力して結果がどのように更新されるか確認して見ましょう |
|
「マクロ使用方法のテスト入力」フォームをダブルクリックしてフォームを開きます

試しに「最初の値」に500、「次の値」に400を入力します、入力が完了したら を押してフォームを閉じます

マクロの「条件」欄に指定したメッセージボックスが動き、計算の実行確認が表示されるので「OK」を選択して下さい、「キャンセル」を選択するとマクロを実行しないで終了します

再度「マクロ使用方法のテスト入力」フォームを開くとマクロで指定した「足し算の計算」が閉じる時に実行されたので「結果」に900が表示されました、試しに色々な値を入力して結果を表示してみましょう
ここまででマクロ活用の一部を学習できたと思います、マクロで実行できる内容や条件は沢山用意されているので上手く応用してみて下さい |
|
|