文字列の左端や右端(あるいは両方)に並んでいる特定の文字を取り除く

 文字列に含まれる特定の文字をすべて取り除くという場合は、Replace関数を使えば一発で済みます。ただ、左端や右端(あるいはその両方)に並んでいるものだけを取り除くという場合はちょっと工夫が必要です。スペースを取り除こうとするのであればTrim,LTrim,RTrim関数が使えるのですが…
 というわけで答えは半分出てしまってますが、その方法を紹介します。

f:id:accs2014:20161213231725p:plain:right:w400

 例として右のようなテーブルを用います。「電話番号」列に記録されている文字列の左右に不要なハイフン(-)が並んでおり、これらを取り除きたいのですが、数字に挟まれているハイフンもあり、これらは残しておきたいというケースです。


f:id:accs2014:20161213224621p:plain:right:w400

 クエリデザインです。
 以下のような列を設けます。



電話番号改: Replace(Trim(Replace([電話番号],"-"," "))," ","-")

 まずハイフンをスペースに変換し、Trim関数で左右のスペースを取り除いたうえで、残っているスペース(数字に挟まれているスペース)をReplace関数によりハイフンに戻す、というわけです。左端(右端)のハイフンだけを除きたいのであればTrim関数の代わりにLTrim(RTrim)関数に置き換えてください。


f:id:accs2014:20161213224620p:plain:right:w400

 データシートビューです。

 なお、このやり方ですと文字列の左右にスペースが含まれる場合、一緒に削除されてしまいます。そのようなスペースを残すならば、Replace関数でスペースを別の適当な文字列に置き換えておき、最後にまたスペースに戻すという手順を加える必要があります。具体的な例は省略しますが上記の内容が理解できる方なら容易に対応できると思います。