• ベストアンサー

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

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

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

  • ベストアンサー
回答No.5

とりあえず、都道府県マスターテーブルを作成する。 (これは、将来、「住所」フィールドを「都道府県」とそれ以降に分割する場合にも役に立ちます。) テーブル名 都道府県マスター フィールド名 都道府県コード 都道府県 都道府県コードは下記を参考に。 http://www.shift-the-oracle.com/etc/database/jis-x-401.html 住所録テーブルからクエリを作成して、フィールドに下記の式を設定すれば、都道府県を削除した表示になります。 住所1: Mid([住所],Len(DLoopUp("都道府県","都道府県マスター","'" & [住所] & "' Like [都道府県] & '*'"))+1)

hasegawa-t
質問者

お礼

ありがとうございます

その他の回答 (5)

回答No.6

補足:自作関数のクエリへの組み込みサンプル 修正1、市区町村抜き出しでなく住所分割に機能を修正。 修正2、CutStr()ではなくMid()を利用。 修正3、ヒットしなかった時の戻り値をもセット。 Public Function dividedAddress(ByVal strJusho As String, Optional Dividion As Integer = 2) As String   Dim I As Integer   Dim J As Integer   Dim N As Integer   Dim strTODOFUKENS() As String     strTODOFUKENS() = Split("東京都,神奈川県", ",")   N = UBound(strTODOFUKENS())   J = -1   For I = 0 To N     If strJusho Like strTODOFUKENS(I) & "*" Then       strJusho = Mid(strJusho, Len(strTODOFUKENS(I)) + 1)       J = I       Exit For     End If   Next I   dividedAddress = IIf(Dividion = 1, IIf(J <> -1, strTODOFUKENS(J), ""), strJusho) End Function これは、添付図の要領でクエリに組み込みます。 住所2: dividedAddress([住所]) <---- ,2 は不要です。

回答No.4

補足の補足:ヒットしない場合は引数を戻すべきかも・・・。

回答No.3

補足: 現実的な方法の具体例 晩酌しながらチャッチャと考えたのでバグがあるやも。次のような都道府県を消す関数を作るというのが仕掛けです。 Public Function eraseTODOFUKEN(ByVal strJusho As String) As String   Dim I As Integer   Dim N As Integer   Dim strTODOFUKENS() As String   strTODOFUKENS() = Split("東京都,神奈川県", ",")   N = UBound(strTODOFUKENS())   For I = 0 To N     If strJusho Like strTODOFUKENS(I) & "*" Then       EraseTODOFUKEN = CutStr(strJusho, strTODOFUKENS(I), 2)     Exit Function     End If   Next I End Function Public Function CutStr(ByVal Text As String, ByVal Separator As String, ByVal N As Integer) As String   Dim strDatas() As String   strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function

回答No.2

VBAで正規表現を使えばできます。 詳しくはネット等で調べて下さい。

回答No.1

【失敗するだろうやり方】 都、府、県などを検索してその後を抽出する手法は、都城市・別府市などがあるので完璧ではない。 【成功するだろうやり方】 都道府県名一覧と住所の冒頭を比較する方法。だが、仕掛けなしには実現不能という難点がある。 【現実的な方法】 住所の登録を、都道府県、市町村等に分割する。 と、思います。

関連するQ&A