• ベストアンサー

Accessでの文字列置換

Access初心者のものですがよろしくお願いします。 データ:      505:501-1-3      506:54-2-G      601:748-5-      704:56-16-      809:7-8- 上記データに対して、最後尾の"-"のみを削除したいのですがどうしたらよいでしょうか? IIF関数を用いて式を書いているのですが、どうしても「最後尾の"-"を削除」の式などが考え付かずお手上げ状態です。 何か良い方法がありましたら教えてください。

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

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

Access 2007 では次のようになります。 ※バージョンによって異なる動作に注意してください。 切り取り後: IIf(Not (StrComp(Mid$([フィールド1],Len([フィールド1]),1),'-')),Left$([フィールド1],Len([フィールド1])-1),[フィールド1]) 詳細はリファレンスをご確認ください StrComp http://office.microsoft.com/ja-jp/access-help/HA001228914.aspx Mid http://office.microsoft.com/ja-jp/access-help/HA001228881.aspx Left http://office.microsoft.com/ja-jp/access-help/HA001228873.aspx Len http://office.microsoft.com/ja-jp/access-help/HA001228874.aspx 以上、乱筆ですが、ご参考いただければ幸いです。

numa-numa
質問者

お礼

なるほど、最後尾の"-"の位置をまず求めるんですね。 "最後尾"を求めればいいだけ。 と簡単に考えていたのですが、簡単にはいかないものですね。 ありがとうございました。

その他の回答 (1)

  • -boya-
  • ベストアンサー率35% (176/494)
回答No.1

Accessのバージョンによる違いがあるかもしれませんが、、、 (1)Right関数で右側の1文字が"-"かどうかを確認 (2)"-"の場合はLeft関数でデータの左からLen(x)-1文字だけ抜き出す という手法はいかがでしょうか? データを「strA」とするとこんな感じでしょうか? (下記は動作確認してません) If Right(strA, 1) = "-" Then strA = Left(strA, Len(strA) - 1) End If

関連するQ&A