質問: データ項目の文字間空白の除去について 顧客データの重複をなくすため、顧客データのクレンジングを行っております。 氏名項目の姓・名間の空白を簡単に除去する方法はありますか? (『山田△太郎』⇒『山田太郎』のように空白を詰めて全データを同一形式にしたい) ms-access2000、excel2003を主なツールとしております。 もしお分かりになる方がいらっしゃいましたらご教授宜しくお願い致します。
回答: access2002以降なら、クエリでreplace関数を使用してスペースを空文字に 変換するのが簡単・・・なのですが、access2000では、クエリにreplace関数を 使用しようするとエラーが発生してしまうので、その分、細工が必要になります。 1)クエリ用の代替関数・qreplaceの宣言(標準モジュールに貼り付けて下さい): private function qreplace(strexp as string, strfind as string, strrpl as string, _ optional lngstrt as long = 1, optional lngcnt as long = -1, _ optional comp as vbcomparemethod = vbbinarycompare) '引数の名前は変えていますが、実質replace関数の引数と同じですので、 '詳細は同関数のヘルプを参照して下さい。 qreplace = replace(strexp, strfind, strrpl, lngstrt, lngcnt, comp) end function 2)上記関数を使用したクエリの作成: クエリ(sql文): update 顧客情報 set 顧客情報.氏名 = qreplace(顧客情報.氏名, " ", ""); ※新規クエリを開いたら、『テーブルの表示』ダイアログは何もせずに閉じ、 メニューで「表示(v)→sql ビュー(q)」を選択した後、上記sql文を貼付 (テーブル名を「顧客情報」、フィールド名を「氏名」と仮定したものですので、 必要に応じて修正してください) ここまで行ったら、後は上記クエリを実行すれば、指定したフィールドのスペース (" ")が、空文字("")に置換されます。 ※念のため、実行前にデータのバックアップを行うことをお勧めします。