| <HOME <お願い事項 <Access2000 TOP <Access97 TOP <サイト内検索 | ||
| MS-Access2002チョ〜入門部屋>基本をマスターしよう | ||
では、レポートはこれくらいにしまして・・・レポートのウィンドウ、保存して閉じましょう。
さて、「テーブル」「クエリ」「フォーム」「レポート」と、4つのオブジェクトについて見てまいりました。
ここまでいかがでしょうか?
こうしたオブジェクトひとつひとつをどう作っていくか、また、作ったオブジェクトをどう組み合わせていくか、そういうことをいろいろ考えながら、皆さんの会社とか学校とかのいろんなお仕事をデータベース化していくということなんですけども、そこんとこが難しいところですね。。。。どうしてもついつい「ソフトウェアの操作」ばかりに目が行っちゃいがちなんですが、それだけじゃ・・・。
次にお話しするのは「マクロ」というオブジェクトです。
でも、これを習得するのは、「テーブル」「クエリ」「フォーム」「レポート」のそれぞれの作り方と役割が理解できてからで十分だと、わたしは思います。逆に、マクロだけ理解しようと思っても、それはかなりとんちんかんです。
マクロだけ独立して解説しようとするセンテンスを設けること自体、かえって話をややこしくする可能性もあります。
この後お話しする「モジュール」っていうやつも同じなんですけどね。
「テーブル」「クエリ」「フォーム」「レポート」の4つのオブジェクトがそれぞれ確立されて、そのあと始めて登場するオブジェクトなのだ、と、そんなふうに考えてください。
フォームのところで、フィルタプロパティを使った絞込み、ってお話しましたよね。
実際にできたかできなかったかは別にして、「コマンドボタンをクリックしたときに絞込みをする」仕組み、作りましたよね。あれをちらっと思い出してください。
「コマンドボタンをクリックしたとき、絞込みをする」
「○×を××したとき、○○○をする」
MS-Accessでは、こんなふうに、何かのきっかけで、何かが起こるといった作りこみをします。
・コマンドボタンをクリックしたら社員入力のフォームが出てくる
・コマンドボタンをクリックしたら社員一覧表が印刷される
・社員入力のフォームが開いたら、自動的に新規入力ができる状態になる
・社員入力のフォームを閉じるときに、自動的に入力したデータが印刷される
・・・といったような「しかけ」みたいなものを作ることができるわけです。
もちろん、わざわざ作らなければ、こういうことは起こりません。作り方を間違えてても、起こりません。
きちんと作るから、こういうことが起こるのです。
「何かのきっかけで、何かが起こる」という仕組みを作るために、マクロというものを作ります。
だから、マクロだけ作るってのも、無理な話なわけです。
ほんとは、クエリとかフォームとかを作るときに、一緒にちょこちょこと覚えていくのが一番いいんですが・・・。
今日は、ほんとに練習ってことで、「メニュー画面」を作ってマクロ体験をしてみましょう。
では、マクロを新規作成します。
データベースウィンドウから、マクロを新規に作成してください。

すると、今回はいきなりこんな感じの↑だだっぴろいウィンドウが出てきたと思います。
これが、マクロを作るためのウィンドウです。
マクロにはデザインビューとかマクロビューとかいうものはなくて、言うなればこのウィンドウが「デザインビュー」という感じでしょうか。。。ここに、具体的に何をするのか、処理の内容を書いていきます。
はっきり言って、これだけじゃぜんぜん意味がわからないと思うんで、実際にはフォームとかクエリとかそういうものを作りながら、理解を深めていってくださいね。今日はどんな感じか見るだけです。
じゃあまず、「アクション」っていうところを見ましょう。なんか、リストが出るようになってますよね。

いろいろ出てます・・・。
この中から、「フォームを開く」っていうのを探して選びましょう。
あいうえお順になってると思うんで、真ん中より少ししたあたりかな・・・。
ありました?

そしたらそのまま、ウィンドウの下のほうを見ましょう。
「アクションの引数」っていうところがあると思うんですけど、そこにまた幾つか項目が並んでますよね。

「フォーム名」というところのリストを出しましょう。
なんか出てきますよね。今まで作ったフォームの一覧です。

うーん、じゃあ、「社員入力」を選びましょうか。
これで、このマクロを実行すると、「社員入力」というフォームが開く、というマクロを作ったことになるんです。
じゃあ、このマクロに何か名前をつけて保存しましょう。左上のフロッピーディスクボタンをクリックして、保存するっていうところは、ほかのオブジェクトと同じですよ。
うーんと、そうだな、「メニュー」とかつけておきますかね。
どうでしょう。別に難しくもなんともないと思いますが、なんだかつかみ所のない操作ですよね。
いったいこれが、どういう展開を見せるのでしょう。
もう少し見てみましょうか。
これから、
「社員入力のフォーム」
「社員の検索のフォーム」
「社員の一覧の印刷」
「終了」
の4つの処理をやるようなメニュー画面を作っていきたいと思うんですよ。
そうすると、この要領であと3つ、マクロを作ればいいんですよね。
もちろん、マクロを4つばらばらに作ってもいいんですが、この「メニュー」というマクロの中に、小さいマクロをいくつも作ることができるんです。そのほうが、「ひとつのメニュー画面の中で使われてるマクロ群」って感じでまとめられるので、そのほうがあとあとわかりやすいかな、って、わたしは思うんですよ。
んでは、その方法を・・・。ツールバーを見てください。

「マクロ名」っていうツールボタンがあるんですけど、これをクリックしてみましょう。

なんか、欄がひとつ増えましたよね。
ここに、じゃあ・・・「社員入力」って入力しましょう。

これで、「メニューというマクロの中の社員入力というマクロを実行すると、社員入力というフォームを開くことになる」わけなんですけれど、どうでしょう。まだ、いまいち何やってるのか状況がつかみにくいですよね。。。
もうちょっと続けますよ。
じゃ、3行目くらいに、「社員一覧表示」ってマクロ名をつけて、また「フォームを開く」っていうアクションを選びましょう。

多分、後々のことを考えると、上のように、マクロ名とアクションを1行ずらして入力したほうがいいかもわからないです。
後で「フォームを開く」より前にやらなきゃならないこととかでてきた時、書き加えるのが楽なので・・・。
でもこういうのは、ずっと後になってから考えたっていいと思うので、いちおうご参考までって感じのお話です。
だって、市販されてる本ってだいたい↑こんな風に1行ずらしてマクロ書いてるんで、「ずらさないといけないものだ」って思い込んじゃってる人もいるんですもん。そういうわけじゃないけど、この方が後で書き換えなきゃいけないとき楽なんですよ、っていうことですから・・・今日は、別に、マクロ名の横にアクションを選んでも、どっちでもいいです。
![]()
で、このときは「社員一覧」フォームを開きたいので、下の「アクションの引数」のところで、フォーム名を指定します。
んじゃ、同じ要領で・・・。
こんなふうに↓3つ目のマクロ名を入れて、「レポートを開く」っていうアクション名を選びます。

アクションの引数として、

こんな感じで、開くレポートを指定します。
「ビュー」っていうところを「印刷」にしておくと、すぐ印刷が始まります。「印刷プレビュー」にすると、まずプレビュー画面が表示され、その後印刷をすることができるので、こっちのほうがお勧めかしら。この辺は、印刷物の内容とか状況に合わせて使い分けていってくださいね。
4つ目は、「終了」なんですが、マクロの中で「終了」っていう動作に使われるアクションが、

あるんですねぇ。アクションのリストの下のほうにあるので、探して選んでみてください。
こいつは、アクションの引数は特に指定しなくてよいです。
これは、MS-Accessを終了させます。Quitってやつですかね。
いきなり終わっちゃうので、これだけじゃちょっとアレかもしれませんが、とりあえずこれでやってみましょうか。
では、このマクロのウィンドウ、保存して閉じましょう。
さて、これらのマクロをどう使っていくか、ってことなんですが、先ほどもお話したように、これらのマクロが動く「きっかけ」が必要です。「なんかきっかけがあって、なんかの処理が動く」といった考え方を「イベント駆動型」「イベントドリブン型」なんて呼びます。そう。イベントっていうやつを作りこんでやらないといけないわけなんです。
なんか、今までにもそれっぽい操作って、出てきましたよね。。。
ではでは、無地のフォームを作って、そこにいくつかコマンドボタンを作り、そのコマンドボタンをクリックしたら、別のフォームが出てきたり、レポートの印刷が始まったりという仕組みを作ってみます。
データベースウィンドウから、フォームを新規作成しましょう。
「デザインビュー」を選んで、そのままOkボタンをクリックします。

出来上がった無地のフォームに、コマンドボタンを4つこしらえます。

ボタンの標題とか大きさとか位置とかは、後で適当に変えてくださいね。お任せしますよ。
各コマンドボタンのプロパティを見ましょう。

イベントプロパティの中に、「クリック時」っていうのがありますよね。
ここのリストを見てみると、さっき作ったマクロの一覧が出てくるはずなんですよ。いかがでしょう。
中から、「メニュー.社員入力」を選べば、「このボタンをクリックしたときに社員入力のフォームが出てくる」っていうことになるのです。
4つのコマンドボタンそれぞれに、「社員一覧表示」「社員一覧印刷」「終了」というマクロを割り当てていきましょう。
このフォームの名前は、「メニュー」ってつけますかね。
わたしはこじんまりとこんな感じにしてみました↓

で、まず「社員入力」のボタンをクリックすると・・・。
確かに、社員テーブルが出てきますね。うーんでも、出てくるのは1レコード目、ですね。これ。

まあいちおう、ひととおり、ほかのボタンをクリックしたときどうなるか、確認しておいてください。
あ、「終了」は、クリックせずにおきましょう。MS-Accessが終了しちゃいますからね。え?押しちゃった?
ありゃりゃ、ほんとに終了しちゃうでしょう?しかも何のメッセージも出さずに。
じゃあ、この辺も含めて、もう少し使い勝手がよくなりそうな工夫をしてみましょう。
MS-Accessを終了した方は、もう一度MS-Accessを起動して、メニューバーの[ファイル]→[開く]で、練習台.mdbを開いてください。作業を続けましょう。
| |