<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>郵便番号の検索
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15



で、データシートビューに切り替えてみたりすると???

ほ???あ??なんや???

なんかでましたねぇ。

さっき作ったフォーム、閉じてるでしょ?
だから、「フォーム内のテキストボックスとやらが見つかりませんが???」と聞き返してるわけですね。
正しいんですよ。これで。慌てない慌てない。とりあえずこれは[キャンセル]の方をクリックして・・・。

そーっと、さっきのフォームを開いてください。
当然、こっちも、真っ白で何にも出てないですよね。
これがどうして真っ白で何も出てないのか、は・・・。
みなさん状況が見えなくなっちゃってませんか?

このフォームのレコードソースは、このクエリー。
このクエリーが情報を表示するためには、このフォームのテキストボックスに
郵便番号がなんかしら入力されないとならない。
まだ郵便番号の入力がないうちは、クエリーが1件もレコードをゲットしてこないので、
フォームの中は真っ白・・・。なんですよ。

これがわけわかんない状態だと、ちょっとこの先キビシイですぞ。
焦ることはないですので、ゆっくり確認してくださいね。



で、上のように、郵便番号をなんかとにかく入力して、そっとクエリーのデザイン画面の方をクリックして、再びデータシートビューに切り替えてみましょう。
テストの段取り、オッケーですか?

郵便番号はいちおう、半角の数字ですよ。全部半角の数字で入力されてますよね。テーブルには・・・。

ほら、今度はちゃんと出たでしょ?

出ないでエラーになっちゃうとかいう方は、エラーの内容を見て、もう一度抽出条件欄の確認をしてください。

この段階では、まだぴしっと完成してるわけじゃないので、テストの仕方が難しいというか、わかりにくいです。
ゆっくり焦らず、時間をかけて何回も繰り返しテストしてください。
1回2回うまくいかないからといって焦って投げ出してしまわないように。
まずはコツをつかみましょう。


さて、じゃあ、郵便番号を再度入力しなおしてみると・・・あれ・・

入力しなおしただけじゃ、クエリーの中身、変らないですよね。
抽出条件が変ったことになるんですけど、新しい抽出条件である1120011をクエリーに伝えないとなりません。
クエリーは既に1120013という抽出条件を忠実に守って、開いてますからね。どうするかというと、再度開きなおすわけです。
再クエリとでも申しましょうか。これ、他のコーナーでも何回か登場してますよね。おさらいしてみましょう。

一度デザイン画面に戻って、もう一度データシートビューを開けば、新しい1120011の住所が出てくるはずです。
そう、郵便番号を入力しなおす度に、再度クエリーを開きなおすっていう動作をしないと、別の郵便番号の情報を獲得してこれないんですね。

でも、フォームから郵便番号を入力して、その都度、クエリーを開きなおすって、どうやればいいんでしょう。
じゃ、ちょっとやってみますかね

上のように、フォームのデザイン画面を出し、テキストボックスのイベントプロパティを見ます。
クリックするのは「更新後処理」。右に出てきたビルドボタンをクリックしましょう。

こんな画面が出てきます。マクロでもコードでもいいんですけど・・・・
とりあえず手っ取り早くコードビルダを使いましょう。
マクロでやる方法は後でまたお話できると思います。

で、なんか出てきた画面を見ると、2行、怪しげな英文が入力されてますよね。
その2行の間に、

DoCmd.Requery

と入力します。りくえりーという命令です。おお、まさに再クエリーではありませんか。これなら覚えやすいですよね。

んで、こっちの白い怪しい英文だけのウィンドウだけ閉じて、フォームをいったん保存しましょう。
閉じてから開きなおしてもいいし、左上のフロッピーディスクマークのツールボタンをクリックしても、保存できます。

デザインビューのままでは入力テストはできないですよ。
フォームビューに切り替えてね。

試しになんか適当に郵便番号を入力してみてください。
すると、なんか出てきません?

少なくとも5回は、別の郵便番号を入力してテストしてみましょう。
郵便番号は半角の数字ですよ。

出てきます?

どこの郵便番号でもいいですよ。近くにある本とか雑誌の裏表紙とかに、出版社の住所書いてあるでしょ。そこの郵便番号とか、入力してみてください。

事業所関係の郵便番号だったら、下に事業所名が出てきます。

また、そんな郵便番号が存在しないということなら、各テキストボックスの中身は真っ白状態だと思います。
とにかく何回か繰り返しテストしてみてください。


で、「あ、テレビ神奈川の松下さんのデータを入力しておこう」とかいって、上のフォームの事業所名の中に「広報部 松下」とか入力しちゃったらだめ〜・・・というのは、どうしてだか、お分かりですよね。

え?なんで?なんで入力したらだめなの?と思った方は、もう一度このフォームがどういうテーブルを基にしているものか、整理して考えてみてください。

このフォームの基はクエリーですよね。指定された郵便番号のレコードだけゲットするよう作られたクエリーです。
では、このクエリーは???

この[郵便テーブル]ですよね。結局、上のクエリーは一件だけデータ表示してるみたいに見えますけど、140537件のレコードがバックにあるわけです。

フォームはただ表示するだけ。フォームにはデータは保存されてません。ここをまずきちっと区別しましょう。


じゃ、[郵便テーブル]の方を見てみましょうか。いちおうデータシートビューでも、簡単な検索機能があります。

郵便番号のどこかをクリックしてカーソルをその列に移動させ(あるいは黄色いところをクリックして1列選択し)、赤いマークの双眼鏡ツールボタンをクリックしましょう。

こんな感じの、検索するためのダイアログが出てきますので、郵便番号を何か入力します。
で、[先頭を検索]をクリックしましょう。カーソルが1行目にあるなら、[次を検索]でもおっけーですね。