お弁当じゃダメだったので、結局ファイルメーカーを入手。以前使っていたけど、大分昔のことなので、すべて忘れている…
で、まずは定番の住所録を作成。せっかくなので郵便番号を入力すると住所を補完してくれるようにしてみました。
環境
FileMaker Pro 11
- 郵便番号簿の作成
郵便番号データダウンロード – 日本郵便のページから、「読み仮名データの促音・拗音を小書きで表記するもの」の「全国一括」をダウンロードFileMaker Proを起動して、解凍した「KEN_ALL.CSV」を読み込みます。データベース名を「郵便番号簿」とします
読み込んだら、フィールド名を分かりやすいように変更。f3を郵便番号、f7を都道府県、f8を市区町村、f9をその他の住所にさらに、住所部分が、f7の都道府県、f8の市区町村、f9のその他の住所と分かれているので、それを合わせたフィールド名「連結住所」を新たに作成。
「ファイル」メニュー→「管理」→「データベース」→「フィールド」タブにて
郵便番号、都道府県、市区町村、その他の住所に索引を設定
新たに追加したフィールド「連結した住所」には、タイプ「計算」を選んで
オプションで、以下の計算式を設定
都道府県 & 市区町村 & Substitute ( その他住所 ; “以下に掲載がない場合” ; “” )
計算結果は「テキスト」、索引オプションで、他のフィールドと同じように索引を設定
- 住所録の作成
新たなデータベースを作成
ふりがな姓、ふりがな名、氏名 姓、氏名 名、郵便番号、住所_1の各フィールドを持ったデータベースで、名前は「住所録」とします - リレーションシップの設定
「ファイル」メニュー →「管理」→「データベース」→「リレーションシップ」タブにて
をクリックして、「データソース」ポップアップメニューで「郵便番号簿」を指定。もし郵便番号簿がなければ、「FileMakerデータソースの追加」で郵便番号簿の場所を指定。
郵便番号簿の郵便番号を選択したまま、住所録の郵便番号まで線を延ばすか、
あるいは、 ボタンをクリックして、左側の「テーブル」ポップアップメニューで「住所録」を選択して、リストから「郵便番号」フィールドを選択。右側の「テーブル」ポップアップメニューで「郵便番号簿」を選択して、リストから「郵便番号」フィールドを選択して、「追加」ボタンをクリック
設定後は以下のようになります。
- ルックアップの設定
「フィールド」タブで、「住所_1」を選択、「オプション」ボタンをクリック
「入力値の自動化」タブにて、「ルックアップ値」にチェックを入れると、設定ウインドウが開くので(自動で開かなければ「指定」ボタンをクリック)「開始するテーブル」ポップアップメニューが「住所録」になっているのを確認して、「関連テーブルからルックアップする」ポップアップメニューにて、「郵便番号簿」を選択。「値のコピー元のフィールド」のリストで、「連結住所」を選択。内容が空欄の場合コピーしないにチェック、完全に一致する値がない場合は、コピーしないを選択されているのを確認して、「OK」ボタンをクリック
設定後は以下のようになります。
このままだと、同じ郵便番号に割り当てられている住所が複数あるので、ダメ
例えば、「0110951」には、秋田県秋田市土崎港相染町と秋田県秋田市土崎港古川町が割り当てられています。
で、値一覧の設定を行います。 - 値一覧の設定「ファイル」メニュー → 「管理」→ 「値一覧」を選び、「新規」ボタンをクリック。値一覧名は「住所一覧」に
「フィールドの値を使用」をチェックすると、次の設定画面が開くので(開かなければ、「フィールド指定」ボタンをクリック」
「最初のフィールドの値を使用」ポップアップメニューにて、「郵便番号簿」を選択。リストにて「連結住所」を選択
「次のテーブルから関連レコードの値のみ含める」にて「住所録」を選択設定後は以下のようになります。
メインの画面に戻って、「表示」メニューから、「レイアウトモード」を選択
住所_1を選択して、コマンド + iで「インスペクタ」ウインドウを表示
「コントロールスタイル」ポップアップメニューにて「ドロップダウンリスト」を選択
「値一覧」ポップアップメニューにて、「住所一覧」を選択
「一覧の表示切り替え用矢印を表示」にチェックを入れるメインの画面に戻って、「表示」メニューから、「ブラウズモード」に戻して、
郵便番号に「0110951」を入力して、タブキーを押すと
住所フィールドで、2つの候補から選ぶことができるようになっています。
-
- ルックアップを削除
「ファイル」メニュー→「管理」→「データベース」
住所_1のルックアップを削除します。 - スクリプトの作成
「ファイル」メニュー→「管理」→「スクリプト」左下の「新規」ボタンをクリックして
左のリストから、「編集」内の「消去」を選択してダブルクリック
右側に、消去[]と表示されるので、下の「内容全体を選択」、「指定フィールドへ移動」にチェックを入れて「指定」ボタンをクリック
「フィールド指定」ウインドウのポップアップメニューより「住所録」を選択して、下のリストから「住所_1」フィールドを選択
画像は設定後のもの消去[選択; 住所録::住所_1]
となります。
次に、左のリストから、「フィールド」内の「フィールド設定」を選択してダブルクリック
「ターゲットフィールドの指定」にチェックを入れて、「指定」ボタンをクリック
「フィールド指定」ウインドウのポップアップメニューより「住所録」を選択して、下のリストから「住所_1」フィールドを選択
画像は設定後のもの「計算結果」の「指定」ボタンをクリック
右の関数のリストから、「Lookup」を選択
左のポップアップメニューより「郵便番号簿」を選択して、下のリストから「連結住所」フィールドを選択
「OK」ボタンをクリックフィールド設定[住所録::住所_1; Lookup( 郵便番号簿::連結住所 )]
となります。
スクリプト名を「郵便番号から住所を入力」とします。
- ボタンの作成
メイン画面に戻って、「表示」メニューから、レイアウトモードへ
郵便番号の右に「郵便番号から住所を入力」というボタンを作成
ボタンを選択したら、「書式」メニューから「ボタン設定」(または、右クリックからボタン設定を選択)
左のリストで、「制御」内の「スクリプト実行」を選択して、オプション内の「指定」ボタンをクリック「スクリプト設定」ウインドウにて、2.で作成したスクリプト「郵便番号から住所を入力」を選択して、「OK」ボタンをクリック
- メイン画面に戻って、「表示」メニューから、ブラウズモードへ
レイアウトを保存しますかと聞かれたら、保存を試しに、郵便番号フィールドに「0110951」と入力して、「郵便番号から住所入力」ボタンをクリックすると
複数の候補があるので、以下のように表示されます。
- ルックアップを削除

データベース「郵便番号簿」を開いて(念のためデータベース「郵便番号簿」をコピーしておいてください)、「レコード」メニューより、「全レコード削除」を選択
郵便番号データダウンロード – 日本郵便のページから、「読み仮名データの促音・拗音を小書きで表記するもの」の「全国一括」をダウンロード。(KEN_ALL.CSV)
「ファイル」メニューより「レコードのインポート」»「ファイルを選択」
オープンダイアログにてKEN_ALL.CSVを選択して、「開く」ボタンをクリック
確認後問題なければ「インポート」ボタンをクリック
完了
コメント
すばらしい。助かりました。 :smile_wp:
お役に立てて良かったです。