メールマガジン【アクセスで作るシリーズ】


バックナンバー 【住所録ソフト編】 Vol.11
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【住所録ソフト編】

    発 行 : Yoshihisa Fukuda          2001.12.24 Vol.11

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、前回作成した郵便番号テーブルを使って、郵便番号から住所を読み込む機能
を作成します。
______________________________________
 □ 住所フォームに[郵便番号<=>住所変換]のボタンを付ける。

  まず、最初に住所フォームの郵便番号の横に[郵便番号<=>住所変換]のボタンを
  作ります。

 [郵便番号<=>住所変換]ボタン作成手順

 1.住所録ソフトのデータベース[Address.mdb]を開きます。

 2.データベースウィンドウの[フォーム]タブを選択します。

 3.住所フォーム[AddressForm]を選択し[デザイン]ボタンを押下します。

 4.コントロールウィザードを解除した状態で、ツールバーのコマンドボタンを
   選択し、郵便番号のテキストボックスの横にボタンを作成します。

 5.作成したボタンの[名前]プロパティに[ZipConvBtn]、[標題]プロパティに
   [郵便番号<=>住所]と、それぞれ設定します。

 6.次に、作成したボタンを選択した状態のまま、[クリック時]プロパティに
   カーソルを移動し[イベントプロシージャ]にして、右端の[...]ボタンを押下
   します。

 7.モジュールウィンドウが開いたら、Private Sub ZipConvBtn_Click() と
   End Sub の間に以下のコードを入力します。

  Dim Addr_DB As Database
  Dim ZipCode_T As Recordset
  Dim ZipFind As String
  Dim AddrStr as String

  If IsNull(Me.ZipCode) Then
    Exit Sub
  End If

  ZipFind = Left(Me.ZipCode, 3) & Right(Me.ZipCode, 4)

  Set Addr_DB = CurrentDb
  Set ZipCode_T = Addr_DB.OpenRecordset("ZipCodeTable", dbOpenSnapshot)

  ZipCode_T.FindFirst "ZipCode = '" & ZipFind & "'"

  If ZipCode_T.NoMatch Then
    MsgBox "郵便番号に該当する住所が見つかりません。"
    Me.Address = Null
    Exit Sub
  End If
  AddrStr = ZipCode_T.Fields("Address1") & _
       ZipCode_T.Fields("Address2")
  If ZipCode_T.Fields("Address3") <> "以下に掲載がない場合" Then
    AddrStr = AddrStr & ZipCode_T.Fields("Address3")
  End If

  ZipCode_T.Close
  Addr_DB.Close

  Set ZipCode_T = Nothing
  Set Addr_DB = Nothing

 8.コードを書いたらモジュールウィンドウを閉じて、フォームを保存しましょう。

 では、ここで郵便番号<=>住所変換が、どの様な感じか見てみましょう。

 住所フォームを開いて、郵便番号を入力して見ましょう。
 郵便番号は XXX-XXXX (3桁-4桁)で入力します。
 次に、先程作成した[郵便番号<=>住所]ボタンを押下します。
 すると、該当する住所が表示されるでしょう。

 全国の郵便番号をダウンロードしてインポートした人は 100-0001 と入力してから
 [郵便番号<=>住所]ボタンを押下してみて下さい。
 すると 東京都千代田区千代田 と住所欄に表示されますね。

 皆さん、思った通りの結果が住所欄に表示されましたでしょうか?

 しかし、まだ完成という訳にはいきません。
 郵便番号データの中には、同じ郵便番号で複数の住所が登録されている場合がある
 からです。

 例えば、最近出来た「さいたま市」を例にすると、330-0861で以下の3つの住所が
 登録されています。

 埼玉県さいたま市上落合(2番地11、
 埼玉県さいたま市上木崎(1丁目8番3
 埼玉県さいたま市北袋町(1丁目21番

 全国の郵便番号データをお持ちの方は、試して見てください。
 郵便番号に 330-0861 と入力して[郵便番号<=>住所]ボタンを押下すると住所欄
 には 埼玉県さいたま市上落合(2番地11、 と表示されますね。

 この様な場合に必要となるのが、1つの郵便番号で複数の該当住所がある場合、
 該当する住所を一覧表示して選択できる画面です。

 そこで、次回は、まず基本となる今回のプログラムの解説を行います。

 その後、該当住所が複数ある場合の対応をしていきたいと思います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元  :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
  ご質問等   :fukud@nifty.com

◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
  しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除  :http://homepage2.nifty.com/f-soft/

 Copyright(C) 2001 Yoshihisa Fukuda All rights reserved.

◇転載について
 このメールマガジンの無断転載などは、一切禁止です。
 転載をご希望の方は、事前にメールで連絡をください。
◇免責
 このメールマガジン及びホームページの内容による、いかなる損害、障害などに
 関して発行者は一切の責任を負いません。
 掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□