郵便番号フィールドの入力から都道府県-市区町村を自動入力する
目的
住所録管理ソフトはもとより、Excelまで搭載しているありふれた機能です。
最近郵政省のサイトでやっと郵便番号データを入手したので、やっとこの機能を私の住所管理フォームに実装しました。
郵便番号"nnn-nnnn"を入力してから参照ボタンをクリックすると、郵便番号テーブルから対応する都道府県名、市区町村-町域名を検索し対応するフィールドに設定します。
関連コントロール
郵便番号 | 郵便番号フィールドに連結 | 書式"nnn-nnnn" |
都道府県 | 都道府県フィールドに連結 | |
住所 | 住所フィールドに連結 | |
参照テーブル
Zip.db
ZIP | 郵便番号 | 文字型"nnnnnnn" |
都道府県 | 都道府県 | 文字型 |
市区町村町域 | 市区町村町域 | 文字型 |
参照ボタン
郵便番号フィールドからハイフンを取り除いた文字列を生成し、Zip.dbの中からこれと等しいZIPを検索する。
検索に成功した場合は対応する都道府県と市区町村町域名を取り出し対応するコントロールに代入、検索に失敗した場合は対応するレコードがない旨メッセージを表示する。
method pushButton(var eventInfo Event)
var
ziporg,zips,pref,add string
ziptbl tcursor
endvar
ziporg=郵便番号.value
zips=ziporg.subStr(1,3,fMBCS)+ziporg.subStr(5,4,fMBCS)
ziptbl.open("Zip.db")
; ZIPがzipsと等しいレコードを検索
if ziptbl.locate("ZIP", zips) then
; 対応する値の取得
pref=ziptbl.都道府県
add=ziptbl.市区町村町域
都道府県=pref
住所=add
else
msgInfo("検索失敗",ziporg+"に対応するレコードがありません")
endIf
ziptbl.close()
endMethod