第7回 郵便局の郵便番号簿データをダウンロードして、郵便番号・住所検索用のアプリをAccessで作成してみる。

第7回です。
郵便局の住所データをダウンロードして、郵便番号・住所検索用のアプリをAccessで作成してみる。

このアプリは、顧客や個人の住所を登録する際の補助画面を目的として作成したものです。
もちろん単体で使用することも可能ですが、出来ればAccessの住所入力支援のプログラムとして捉えたほうが、Accessアプリ内で便利に使えるでしょう。
関連記事
第3回 Accessで、「得意先マスター保守」処理画面を作成してみる。

この処理を画面作成など1から説明するのは、膨大な時間と手間がかかりますので、それは無理です。 少なくても、自分でテーブルを定義して、自分で画面を作るところまでできるスキルの方に対する説明ですので初心者でもできない事は無いですが、ちょっと難しいでしょう。

最初に、処理画面を見せてしまいます。 画面はこの1画面のみです。
但し、フォームは(メイン、市区町村、住所詳細)の3フォームで構成されています。
Accessでも画面のフォームの中にサブフォームとして追加表示することができます。

郵便番号・住所検索 Access プログラム

画面左ペインの「ZipCTV」項目をクリックすると、関連したデータが右ペインに住所の一覧として、郵便番号、住所などが表示されます。

政令都市で「区制」を採用している都市など、非常に便利に郵便番号、住所を発見できます。
その他の「市」の場合は、町名が非常に多い場合、見つけるのにちょっと時間がかかります。


Sponsored Links





これを作成するには、郵便局のホームページから郵便番号簿データをダウンロードする必要があります。 このデータが無いと作れません。

1.郵便番号簿データの入手とデータの加工

1)郵便番号簿データの入手

郵便局のホームページから郵便番号簿データを無ダウンロードします
都道府県別、全国版が有りますので、必要な番号簿を無償でダウンロードします。
(CSV型式のファイルで、各都道府県別にあります)
http://www.post.japanpost.jp/zipcode/download.html

2)アプリの入手

このデータを使い、ACCESSのテーブルにデータを移行(データ変換)します。

この変換処理を行うには、Accessで動く変換アプリが必要です。
以前は無償でしたが、現在は、有償版しかありません。
下記のサイトから入手可能です。
■参照(窓の杜):住所変換システム ZipConv
https://www.vector.co.jp/soft/dl/win95/personal/se373726.html

3)変換処理

このアプリで、郵便局から入手した郵便番号簿データ(CSV)を取込んで、Accessのテーブル名:「T_Zip」のデータに変換してくれます。

4)「市区町村データ(T_市区町村名)」というテーブル作成

変換後、この「詳細住所データ(T_Zip)」をCOPYして、「市区町村データ(T_市区町村名)」というテーブルをもう一つ作成します。
(項目名:ZIP_CT 、ZipAddressだけ残したファイルを自分で加工するだけです)

5)これで、「市区町村」データと「詳細住所」データを連動させる準備ができました。

3画面作成して、2画面を1つの画面に埋め込む作りです。

2.処理内容

どんな構成になっているのか? デザインモードにして、使用しているテーブル(データ)を観てみましょう。

1)使用している画面とテーブルの関係

テーブルは上記の2つです(T_Zip、T_市区町村名)。
全国版を作る場合は、もう一つ「T_Pref」が必要になります。
今回は「北海道」だけですので、使うテーブル(データ)は2つです。

2)テーブルのデータ構成

■市区町村データとして、T_市区町村名: ZIP_CT 、ZipAddress
■住所詳細データとして、T_Zip  : ZIP_Code(郵便番号) 、ZIP_CT 、ZipAddress

連動させているデータ項目は、「ZIP_CT」です。
これが両方のテーブルデータに格納されているので、連動させることが可能になります

3)連動させる方法

<メイン画面をデザインモードで表示>

メイン画面に、項目名「KAKU-CODE」という項目を定義します。

コントロールソースに =[SF_市区町村サブフォーム].[Form].[ZipCTV] と入力する。


<右ペインのSF_詳細住所サブフォームをクリックして指定プロパティを表示>

プロパティシートの「データ」タブの下記の項目に下記の様に設定する

・ソースオブジェクト :SF_詳細住所サブフォーム
・リンク親フィールド :KAKU-CODE
・リンク子フィールド :ZipCTV

これで、いったん保存して閉じて、再度、起動すれば、連動して表示されるでしょう。

郵便番号・住所検索 Access プログラム

3.使い道

右ペイン住所詳細の「ZipCode(郵便番号)」をクリックした時のプログラム(VBA)をイベントの中に作成すればいいだけです。

1)Accessで作成したアプリの中で使用するとき

下記の様に、項目を設定してあげれば、住所などを自動入力できます。

起動ボタンを作成して、クリックすると上記検索画面が表示されるようにする。

左ペインの「ZipCode(郵便番号)」をダブルクリックした時のイベントの中に作成すればいいだけです。
**********************************************************
Private Sub ZipAddress_DblClick(Cancel As Integer)
On Error GoTo Err_ZipAddress_DblClick

Forms![顧客データ保守フォーム].[郵便番号] = Me![ZipCode]
Forms![顧客データ保守フォーム].[住所] = Me![ZipAddress]
Forms![顧客データ保守フォーム].[住所CD] = Me![ZipCTV]

‘画面を閉じる
DoCmd.Close acForm, “SF_住所検索メインフォーム”

Exit_ZipAddress_DblClick:

Exit SubErr_ZipAddress_DblClick:
MsgBox Err.Description
Resume Exit_ZipAddress_DblClick

End Sub
**********************************************************

2)Access単体で使用する場合

Windowsの「クリップボード」に、COPYされるようにしています。

こうすれば、Wordでも、Exceにでも、キーボードコマンド「Ctrl+v」で貼り付けることができるでしょう。

クリックした時のイベントの中に作成すればいいだけです。

**********************************************************
Private Sub ZipCode_Click()
On Error GoTo Err_ZipCode_ClickDim stadd As String

郵便番号のハイフンを削除する処理
stadd = Me.ZipCode
stadd = Replace(stadd, “-“, “”)

クリック時に、クリップボードに郵便番号をCOPYする処理

Dim txt As String: txt = stadd

Dim cmd As String: cmd = “cmd /c “”echo ” & txt & “| clip”””

CreateObject(“WScript.Shell”).Run cmd, 0

Exit_ZipCode_Click:

Err_ZipCode_Click:
MsgBox Err.Description
Resume Exit_ZipCode_Click

End Sub
**********************************************************

どうでしょうか? Accessで個人データなどのエントリー画面で住所入力支援するための処理があれば作業がはかどりますので、参考にして作成してみてください。

一度作成すれば、定期的に郵便局からデータをダウンロードして、最新版のデータを入れ替えれば、いつまでも使用できます。

関連記事
第1回 マイクロソフト ACCESSでデータベースを作成するには
第2回 Accessで、「得意先マスター保守」処理画面を作成してみる。
第3回 Accessで、「得意先マスター保守」処理画面を作成してみる。
第4回 マイクロソフト ACCESS(アクセス)でデータベースを作成 検索・抽出処理
第5回 Access2010でパスワード管理データベースを作成してみよう。
第6回 EXCELで作成した住所録をAccess2010に取り込んではがき宛名印刷をしてみる。

関連記事
Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について
マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。

第1回 ACCESS(アクセス)データベース作成ソフトについて
第2回 ACCESS(アクセス)データベース作成ソフトについて
第3回 ACCESS 2007の情報
第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
第9回 ACCESS 2010の情報
第10回 Access2000(mdb)からAccess2010(accdb)に変換する


Sponsored Links




シェアする

  • このエントリーをはてなブックマークに追加

フォローする