• ベストアンサー

Access2002 郵便番号から都道府県を算出したい

いつも拝見しております。皆様のお知恵をお貸しください。 Access2002にて、既に存在する【郵便番号】フィールドの値を元に、 【都道府県】フィールドに都道府県名を当て込むという操作を できればクエリで実行したいと思っております。どのような方法が あるでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 5qoo
  • ベストアンサー率48% (20/41)
回答No.3

質問の答えと違うかもしれませんが、私も以前同じような事をしたことがあります。 郵便局の「郵便番号」CSVデータをダウンロードして、そのデータを使って都道府県を更新する方法です。 1.住所の郵便番号のダウンロードサイト http://www.post.japanpost.jp/zipcode/dl/kogaki.html (旧郵便番号,郵便番号,カナ都道府県名,カナ市区町村名,カナ町域名,都道府県名,市区町村名,町域名・・・などの内容データです) 全国一括 (1,718,560Byte) をダウンロードする。 注意事項:ダウンロードデータは、CSV(可変長データ)形式のファイルをlzh形式で圧縮して保存しております。 ご使用になられるコンピュータに適合した解凍ソフトをご用意いただき、解凍の上ご使用ください。 2.解凍したCSVファイルをインポート。 ※もし、自分側の郵便番号が"-"を含む8桁(000-0000)ならインポートした郵便番号は7桁(0000000)ですので同じに変えておく必要があります。 その場合は、更新クエリーで 郵便番号を Left([郵便番号],3) & "-" & Right([郵便番号],4) で変更して下さい。 3.更新クエリー(キー:郵便番号)で「都道府県」フィールドを更新する。 以上です。

gaillard
質問者

お礼

ご回答ありがとうございます。 地道な方法ですが、確かにこれで求めていた作業ができました! ありがとうございます! ただ、ひょっとして他の手段を教えてくださる方がいらっしゃるかもしれないので、 もう少しだけ締め切らないでおこうと思います。すいません。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

郵便番号変換関数のユーザー関数です。Officeの住所入力支援用辞書Advzip.dicを使って出来ます。 ちょっと長いですが・・。下記を標準モジュールにコピーしてください。 Option Compare Database Option Explicit Private Declare Function zcGetZipDecision Lib "MSYubin7.dll" _ Alias "GetZipDecision" _ (ByVal ZipCode As String, _ ByVal szKen As String, _ ByVal szCty1 As String, _ ByVal szCty2 As String, _ ByVal szTwn As String, _ ByVal szTwnExt As String) As Long Private Declare Function zcYubin7 Lib "MSYubin7.dll" _ Alias "yubin7" _ (ByVal szAddress As String, _ ByVal szZipCode As String, _ ByVal szBarCode As String) As Long Private Declare Sub zcSetHyphenMode Lib "MSYubin7.dll" _ Alias "SetHyphenMode" (ByVal HyphenMode As Integer) ' ------------//列挙定数宣言部//------------- Public Enum enmOcyanZip zcHyphenOn = -1 ' 郵便番号のハイフンモード設定 zcHyphenOff = 0 zcAll = -1 '全て(既定値) zcKen = 0 '都道府県名 zcCty1 = 1 '市1名 zcCty2 = 2 '市2名 zcTwn = 3 '町名 zcTwnExt = 4 '町域以降 zcArray = 5 '要素数5の一次元配列 End Enum Public Function OcyanZip( _ source As String, _ Optional ByVal flag As enmOcyanZip = -1) As Variant ' 変数宣言部 Dim oZip As String * 10 '郵便番号用バッファ Dim oKen As String * 40 Dim oCty1 As String * 40 Dim oCty2 As String * 40 Dim oTwn As String * 40 Dim oTwnExt As String * 500 Dim asRet(4) As String ' 住所用配列 If source = vbNullString Then OcyanZip = IIf(flag = zcArray, asRet, vbNullString) Exit Function End If ' 郵便番号→住所変換 If Val(source) Then Call zcGetZipDecision(source, oKen, oCty1, oCty2, oTwn, oTwnExt) asRet(0) = Left$(oKen, Instr(oKen, vbNullChar) - 1) asRet(1) = Left$(oCty1, InStr(oCty1, vbNullChar) - 1) asRet(2) = Left$(oCty2, InStr(oCty2, vbNullChar) - 1) asRet(3) = Left$(oTwn, InStr(oTwn, vbNullChar) - 1) asRet(4) = Left$(oTwnExt, InStr(oTwnExt, vbNullChar) - 1) Select Case flag Case zcKen To zcTwnExt OcyanZip = asRet(flag) Case zcArray OcyanZip = asRet Case Else OcyanZip = Join(asRet, vbNullString) End Select ' 住所→郵便番号変換 Else Call zcSetHyphenMode(flag) Call zcYubin7(source, oZip, vbNullString) OcyanZip = Left$(oZip, InStr(oZip, vbNullChar) - 1) End If End Function クエリのフィールドで 住所:OcyanZip([郵便番号]) とすると変換できます。 都道府県のみの場合は 都道府県:OcyanZip([郵便番号],0) 定数宣言部で宣言している都道府県にあたる定数0を指定します。 住所から郵便番号にも変換できます。 簡単です。

gaillard
質問者

お礼

御礼が遅くなり申し訳ありません。 回答ありがとうございました。 「標準モジュール」を触ること自体が初めてだったので かなり緊張しましたが、なんとかできました! 確かにこれも簡単でした。ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

郵便番号をテーブルに入力と同時に、府県名を出すのはやさしい。 郵便番号ー府県名ー住所のフィールドを作っておく。 テーブル デザインビュー 府県名 をクリック 標準タブ をクリック 住所入力支援 をクリック 郵便番号のボックスの▼をクリック 郵便番号(フィールド) 都道府県と住所の2分割 をチェック 都道府県 府県名(フィールド)を選ぶ 住所 住所(フィールド)を選ぶ 完了 テーブルに入力すると府県名フィールドに府県名が即座に入る。 既に入力が終わっている郵便番号フィールドに対し、上記と同じことをやるのはできるか考えてみます。

gaillard
質問者

補足

回答ありがとうございます。 問題は正に後者なので、なかなか苦戦しております。 お手間でなければ、よろしくお願いします!

  • akio_myau
  • ベストアンサー率34% (515/1480)
回答No.1

郵便番号支援ユーティリティを利用してはどうでしょうか。

参考URL:
http://support.microsoft.com/kb/882954/ja
gaillard
質問者

補足

早々のご回答、ありがとうございます。 早速試してみましたが、これは「郵便番号を1件1件入力すると 自動的に住所入力もできる」というユーティリティですよね? 私がしたいのは、他のデータからインポート(数万件)された 郵便番号フィールドの値から一斉に住所入力(都道府県だけ)したい、 ということなのです。説明が足りず、すいませんでした。

関連するQ&A

  • Access入力済の郵便番号から自動的に住所入力

    Access2013 テーブルのフィールドにすでに入力してある郵便番号から、都道府県と住所の2分割に自動的に入力する方法を教えて下さい。 住所入力支援ウイザードで、個々に郵便番号を打ち込み入力し、都道府県と住所を自動入力することはできたのですが。 宜しくお願いします。

  • 郵便番号から住所を出力

    エクセルで郵便番号を入力して住所を表示するのに下のようにやってます。これを一発で目的を達するマクロにしたいのですが、どなたかご指導ください。 セルA2に郵便番号が入力されるとセルB2にも同じ値を書き込むマクロをつくり、セルC2に「=PHONETIC(B2)]としています。 操作員の手順は以下のとおり。 1.セルA2に郵便番号を入力する。 2.セルB2に出た郵便番号を数式バー上で選択して「変換」キイを押してドロップダウンリストで住所を選択する。 3.数式バー上で、都道府県の文字の後ろにカーソルを置いて都道府県名を削除した後、エンターで確定する。 4.不足の住所の番地等を入力する。 この2と3をマクロ化したいと思いますが、どなたかご指導ください。 なお、3で都道府県名を削除していますが、こうしないとセルC2にふりがなが出ませんのでやむなく都道府県名を削除しています。かなが出るなら都道府県名の削除は必要ありません。 アドインや類似の質問の回答を試しましたが、いま一つ満足ができません。よろしくお願いします。

  • 郵便番号と住所について。

    Access2000で住所録をつくっています。 郵便番号を入力して変換すると住所になる、というIMEの機能はわかったのですが、郵便番号と住所を別の欄につくったので、郵便番号を入力したら自動で住所欄に住所が入るようにしようと思い、郵政省のところから住所録(全国版)を持ってきました。 これを「住所録」というテーブルにしました。 フィールドとしては ・郵便番号 ・都道府県 ・市町村 ・町名 の4つです。 これを使い自動で入力を行うような状態にしたいのです。 郵便番号を入れると自動で入力されるようにする、というのはなんとかできそうなのですが、逆のパターンの場合にどうしたらいいか考えています。 (例えば同じ町名でも番地によって郵便番号が違うのはどうしたらいいか・・・など。) また、「北海道」と都道府県に入力したら市町村のところには北海道の市町村しか出ないようにするにはどうしたらよいでしょうか?(町名もおなじく。) やはり都道府県別にテーブルを作ったりする必要が出てきますか? よろしくお願いします。

  • アクセスのレポート印刷で郵便番号順に出力したい

     いつも大変お世話になっています。   アクセスで名簿データのクエリからレポートをリンクしているんですが、郵便番号順に出力(印刷)したいのですが、名前の昇順になってしまいます。クエリの方ではちゃんと郵便番号順になっているのに。。。   どのように設定すればいいのか教えてください。  

  • Accessでクエリに規則性の無い重複データが

    Accessに二つのテーブルを作りました。 Tユーザー情報 ・ユーザーID ・郵便番号 ・性別 T都道府県 ・都道府県名 ・郵便 Tユーザー情報には都道府県のデータがないため、 T都道府県とひもづけたいのです。 続いてクエリを作成しました。 ・ユーザーID(Tユーザー情報) ・性別(Tユーザー情報) ・郵便番号(Tユーザー情報)→リレーションシップ:郵便(T都道府県) ※結合プロパティで「両方のテーブルの結合フィールドが同じ行だけを含める。」 ※無効な〒番号のユーザーは省きたいため ・都道府県(T都道府県) 結果、Tユーザー情報の件数よりも、クエリのレコードの件数が多くなってしまいました。 ユーザーIDを見ると、全く同じレコードが数行混ざっていました。 重複レコードはそれぞれ件数が違い、規則性も見つかりません。 全体で10万件のうち8千件くらいの重複データができてしまいます。 googleで調べると、もともと重複データのあるレコードを削除する方法は あるようですが難しく、そもそも重複データを作らない方法が見つかりません。 クエリの作り方が間違っているのでしょうか… どうぞよろしくお願い致します。

  • Access 選択クエリ 開いてデータ修正できない

    Access 選択クエリ 開いてデータ修正できない 選択クエリを直接データシートビューで開いて直接あるフィールドの値を修正したいです。 選択クエリ(以下のテーブルを都道府県コードでリンク)多:多 テーブル1 ・氏名 ・ふりがな ・都道府県コード ・備考欄 テーブル2 ・都道府県コード ・都道府県名 上記のクエリで「備考欄」に文字入力ができな状況です。 ロックがかかっています。 やりたいことは単純ですがそもそもこの状況では入力・修正はできないのでしょうか。 どなたかご教授いただければ幸いです。 よろしくお願い申し上げます。

  • 郵便番号から都道府県・郡・市・区を表示

    JavaScriptで、郵便番号から都道府県+郡・市・区を別のテキストボックスに出力したいのですが、どこかにいいコードはありますか。 操作としては、「郵便番号入力」⇒「自動入力ボタンをクリック」⇒「都道府県+郡・市・区が自動入力」というイメージです。 CGIなどを介さないで行いたいのですが・・・ データは数十KBだと思うので、容量は大丈夫だと思いますが、どうでしょう。

  • accessに内蔵の郵便番号辞書を新しくするには?

    MS-IMEの郵便番号辞書は、最新のものをMSのホームページからダウンしてインストールすればWORD,EXCEL,ACCESSなどで使えます。accessで郵便番号フィールドに入力すると住所フィ-ルドに住所が入力される機能は、残念ながら、MS-IMEを使っているのではなく、accessに内蔵の郵便番号辞書を使っているようです(推測ですが)。私のaccessは2002ですが、大宮市と表示されます。さいたま市と入力されるMS-IMEのように、accessに内蔵の郵便番号辞書を新しくする方法はないでしょうか?

  • Access2013 住所録の都道府県を削除

    Access2013 フィールド(短いテキスト)に住所を「東京都大田区糀谷」や「神奈川県横浜市港南区」などと入力してある住所録があります。 これから、都道府県の表示を削除するクエリを教えて下さい。 宜しくお願いします。

  • テーブルに郵便番号フィールドを設けたいのですが

    アクセスで、テーブルに郵便番号フィールドを設けたいのですが どういう書式設定にすればいいか悩んでいます。 フィールド名:郵便番号 データ型:テキスト型 にしました。 フィールドの書式の設定は何もしていません。 実際の郵便番号は 123-4567 です。 実際データとして郵便番号を入れる時は 1234567 と入れた方が良いのか 123-4567 といれたほうがいいのか どちらでしょうか? 細かいこと気にし過ぎですいません・・・

専門家に質問してみよう