accessにて取引先会社テーブルがあり会社コード、会社名、住所などの情報が数千件あります。
accessにて取引先会社テーブルがあり会社コード、会社名、住所などの情報が数千件あります。 会社名には(株)〇〇〇や、株式会社〇〇〇、有限会社○○○、○○法人○○○など色んなパターン会社名の先頭に付いています。この色々なパターンを削除し、純粋に会社名だけにした情報が欲しいのですが、削除したい文字列を別テーブルでマスター化し、マスターに削除したい文字列パターンを登録すると反映されるような事はできませんでしょうか?具体的な方法があれば教えて頂きたいです。 宜しくお願い致します。
Microsoft Access | Visual Basic・69閲覧・50
ベストアンサー
ユーザー関数で処理可能です。 下記を標準モジュールにコピーペーストして下さい。 コード内部の T_除去名 と言うのは 削除したい文字列を別テーブルでマスター化 したテーブル名です、任意に名称は変更して下さい。 但し T_除去名 テーブルには 除去名 と言うフィールド名を作り、除去したい名称を登録して下さい。 (株)〇〇〇法人 みたいな名称が有ったとしても、最初に見つけた除去名の1個しか削除しません。 (株)〇〇〇法人 なら 〇〇〇法人 もしくは (株)〇〇〇 に成ります。 クエリのフィールド部分に 名称:Wordrem([会社名]) みたいにして使います。 クエリのフィールドに不可視でも良いので[会社名]は必要です。 Function Wordrem(社名 As String) As String Dim rs As Recordset Dim rsCount As Long Dim i As Long Set rs = CurrentDb.OpenRecordset("T_除去名", dbOpenTable) 'レコードをカウントします。 rs.MoveFirst rsCount = rs.RecordCount For i = 1 To rsCount If InStr(社名, rs!除去名) > 0 Then Wordrem = Replace(社名, rs!除去名, "") Exit For End If rs.MoveNext Next i If Wordrem = "" Then Wordrem = 社名 End If rs.Close End Function
質問者からのお礼コメント
ご回答有難うございました。思っている形に出来そうです。本当にご丁寧なご教示有難うございました。
お礼日時:1/16 17:47