<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000--VBAの小屋>「エディタ」に慣れる
   1 2 3 4 5



じゃ、メッセージそのものが1じゃなんだか味気ないんで、せっかくですから何かもっとメッセージの部分変えてみましょうか。
エディタのウィンドウをもう一度見ましょうか。

どうやって切り替えたら一番手っ取り早いか、は・・・お任せしますよ。とにかく今日は、MS-Accessのフォームなどを操作する普通のウィンドウと、VisualBasicのエディタのウィンドウが別々に開いてくるっていうその雰囲気をつかんじゃってくださいね。
「どうやってエディタに戻るんだっけ!?」とかまごまごしちゃったり、一回エディタを閉じちゃったら、えっどうやってあの画面出すんだっけ??とか、そうなっちゃうと作業効率が落ちる一方ですもんね。

じゃ、↓こんなふうに書き換えて、もう一度コマンドボタンクリックしてみましょう。

・・・・。なんも出んやん。

そう・・・。コンピュータは、ひらがなとかカタカナとかアルファベットとか、いわゆる「文字」の類はわからないんです。読めないんですよ。
MsgBoxみたいに、あらかじめ用意されている関数名とかならわかるんですけど、それ以外はわからないんですよ。

ビルゲイツ、とか王貞治、とか入力してもわかんないんですよ。なーんも知らんのです。
でも、読めないのに、左端からちゃんと読もうとするんです。
でもわからないから、何も出さないんですね。
エラーになることもありますけど・・・MSGBOX関数はとりあえずボックスだけ出してくるみたいですね。

じゃあ・・・このメッセージボックスもいちおうOKってボタンクリックして閉じて・・・。

入力した文字をそのまま表示させたりしたいときは、ダブルコーテーションで囲ってやります。
これは、MSGBOX関数に限らず、VBAの世界ならどんなときもおんなじです。

MsgBox "旅の宿へようこそ"

ね、出るでしょう。

今度はテキストボックスの方を使ってみましょうか。
テキストボックスは、中になんか入力しますよね。クリックすると・・・というより、入力後・・・のほうがいいと思うんですよ。なんか命令を下すタイミングって。

「更新後処理」と「変更時」って、どう違うんでしょうね。
ヘルプを見てみると・・・。

「更新後処理」
BeforeUpdate イベントおよび AfterUpdate

イベントは、コントロールまたはレコードが更新されるときに発生します。レコード内では、各コントロールで変更されたデータが更新されるのは、フォーカスがコントロールの外に移動したときと、Enterキーまたは Tab キーが押されたときです。
「変更時」
テキスト ボックス、またはコンボ ボックスのテキスト ボックス部分の内容が変化するときに発生します。

で、「変更時」のヘルプの下のほうに
テキスト ボックスやコンボ ボックスにデータを入力してから他のコントロールに移動 (または [レコード] メニューの [レコードの保存] をクリック)
すると、コントロールに対するすべての Change イベントが発生した後で、コントロールに対する BeforeUpdate および AfterUpdate
イベントが発生します。

とあります。つまり、まず「変更時」のとこに書かれてる処理をやって、次に「更新後処理」のとこの処理をやるっていう順番みたいですね。

・・・でも結局よくわからない・・・とりあえず「更新後処理」ってとこを使いましょうかね。

さっきのコマンドボタンのトコの処理と、同じとこに書くことになりますね。
じゃ、さっきのおさらいで・・・何かメッセージを出すようにしてみてください。


じゃ、フォームのほうに戻って、テキストボックスに何か入力してみましょう。

「更新後処理」というところに命令を書いたので、「テキストボックスの中にカーソルを置いて、何か入力して、Enterキーを押したとき」にメッセージボックスが出てくることになるわけです。

じゃ、なんか入力してEnterキー押してみてください。メッセージボックス、出ます?