- ベストアンサー
Access2013 住所録の都道府県を削除
Access2013 フィールド(短いテキスト)に住所を「東京都大田区糀谷」や「神奈川県横浜市港南区」などと入力してある住所録があります。 これから、都道府県の表示を削除するクエリを教えて下さい。 宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、都道府県マスターテーブルを作成する。 (これは、将来、「住所」フィールドを「都道府県」とそれ以降に分割する場合にも役に立ちます。) テーブル名 都道府県マスター フィールド名 都道府県コード 都道府県 都道府県コードは下記を参考に。 http://www.shift-the-oracle.com/etc/database/jis-x-401.html 住所録テーブルからクエリを作成して、フィールドに下記の式を設定すれば、都道府県を削除した表示になります。 住所1: Mid([住所],Len(DLoopUp("都道府県","都道府県マスター","'" & [住所] & "' Like [都道府県] & '*'"))+1)
その他の回答 (5)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足:自作関数のクエリへの組み込みサンプル 修正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 は不要です。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足の補足:ヒットしない場合は引数を戻すべきかも・・・。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足: 現実的な方法の具体例 晩酌しながらチャッチャと考えたのでバグがあるやも。次のような都道府県を消す関数を作るというのが仕掛けです。 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
- world-3000
- ベストアンサー率0% (0/4)
VBAで正規表現を使えばできます。 詳しくはネット等で調べて下さい。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【失敗するだろうやり方】 都、府、県などを検索してその後を抽出する手法は、都城市・別府市などがあるので完璧ではない。 【成功するだろうやり方】 都道府県名一覧と住所の冒頭を比較する方法。だが、仕掛けなしには実現不能という難点がある。 【現実的な方法】 住所の登録を、都道府県、市町村等に分割する。 と、思います。
お礼
ありがとうございます