<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>食いだおれデータベース
  Page1Page2Page3Page4Page5Page6Page7Page8Page9Page10Page11Page12Page13



フォームビューで開いて、こんな感じになりました。
で、それぞれのコマンドボタンをクリックしたとき動く処理を作りましょう。

ひとつはこれ。フォームを開いた後、新しいレコードに移動するマクロ。
開くフォームは紫色の[食いだおれ入力]フォームです。

あれ、これってさっき無効にしたDoCmd.GoToRecord...の変わり・・・ですね。
マクロの名前は、そうですね、[入力フォームを開く]にしましょうか。まあ、たまにはマジメな名前もいいかと・・・。

こんなふうになりました。
メニューの[食いだおれ入力]ボタンをクリックしたときにこのマクロが動くようにすれば、紫色のフォームを開いた後新規入力状態になりますよね。
同じことですけど、こっちの方法ならフォームそのもののプロパティをいじる必要はないですよね。

で、もうもうひとつ。[一覧表]フォームを開くマクロを別に作ります。こちらは「フォームを開く」だjけ。1行だけのマクロです。
名前は・・・月並みですけど「一覧表を開く」って感じで付けてみました。

と、マクロが4つになりました。
うーん、もうちょっと計画的に名前を付けていかないと、どれがどれだかさっぱりわからなくなっちゃうなぁ・・・。

まあいいや。みなさん個々にわかりやすい名前付けの法則、見出してみてくださいね。マクロが4つになりました。
で、黄色くしたメニュー画面の各ボタンの「クリック時」イベントに、[食いだおれ入力]を開くマクロと、[一覧表]を開くマクロを選びましょう。
この辺の操作は、みなさんもうオッケーですよね。


■メッセージボックスについて

さて、メニューバーの右下に「おしまい」というコマンドボタンを作りました。

マクロに「終了」というアクションがあり、Accessそのものを終了させる、という意味。これがいいでしょう。

VBAで書くとDoCmd.Quitという命令文になります。

どっちでもいいですが、コードビルダを使って書いてみましょうか。
ここでひとつ工夫してみようと思います。

メッセージボックスを出して、終了するよ、とひとことことわろうかと思うんです。

メッセージボックスを出すためには、マクロなら「メッセージボックス」というアクションがありますのでそれを使います。

VBAでこれと同じ記述をする場合は、上のようにMsgBox "メッセージの内容"と書いてやります。

と、上の処理を実行すると、こんなメッセージボックスが出て、[OK]ボタンをクリックするとAccessが終了します。
あ、やらなくてよいですよ。Access終了しますからね。とりあえず書き方と意味合いだけ確認いただければよいです。

と、必ず終了させるときならこれでもいいですけど、中には「うっかりおしまいボタンをクリックしちゃって〜」なんていうあわてものがいるかもしれないですよね。

他の処理にも利用できると思いますし、[OK]ボタンひとつだけのメッセージボックスじゃなくて、[はい]と[いいえ]とか、ボタンがふたつ出てくるメッセージボックスを使ってみましょう。


さっきのMsgBoxの行をちょっと改造します。

ここで、VBAの構文のひとつ、If Then Elseというのがまた登場します。

今まで作ってきたマクロやコードって、上から1行ずつ順番に処理されるって感じでしたよね。まあ、まだあんまり複雑な処理は出て来てないんで、2〜3行ですけど・・・。
でも、上から順に、ってわけにいかないときもありますよね。

「○○○のときはこうしたいけど、××のときはああしたい」とか、処理がふたつに別れる場合。そういうときに使います。

If ほにゃららがほにゃららだったら Then

 ほにゃららなときは、わたしはこうする。

Else

 ほにゃららじゃなかったら、こうする。

End If

基本構造は英文みたいなもんです。あとは、間の処理を、うまいこと表現できるかってことになります。

いろいろな処理に使えそうですよね。
今回はメッセージボックスに表示されてるボタンをクリックしたら・・・という処理に使いますけど、いろんなところで活用してみてください。


メッセージボックスにはどんな種類があるんでしょう。ちょっと調べてみましょう。

メニューバーの[ヘルプ]→[トピックの検索]を選びます。

出てきたウィンドウの中に、msgboxと入力しますと、それらしいキーワードがいくつか出てきます。

えーと、MsgBoxアクションっていうのは、マクロの「メッセージボックス」アクションのことだから、ちょっとちがうな。。。MsgBox関数っていうやつかな。あれー・・・ふたつありますねえ。みなさんの画面でも、ふたつ出てきます?

どっち見ればいいのかな・・・。うーわかんないから、上の方のMsgBox関数を見ましょうか。ダブルクリックします。


ひー。なんかごちゃごちゃ書いてありますけど・・・。いちおう読みましょう。
で、少し下の方にスクロールすると、メッセージボックスの種類がいろいろ書いてありますよね。
え?違うの選んじゃったみたい?もー。しっかりしてくださいよ。
そういう方は、左上の[トピック(T)]っていうボタンをクリックして、もう一度MsgBox関数っていうのを選びなおしてください。

いろいろあるんですねぇ。フツウは一番上の、vbOkOnlyってやつが出ることになってるんですね。[OK]ボタンだけのやつ。
これを、えーと・・・vbYesNoにしましょうか。これ、使ってみましょう。

ついでに、もうちょっと下の方にスクロールすると、メッセージボックス上の各ボタンのことをVBAではどう表記するか、一覧が載ってます。
[はい]のボタンをvbYes、[いいえ]はvbNoですね。

では、ヘルプのウィンドウだけ閉じて、作業に戻りましょう。