- ベストアンサー
Accessでの文字列置換
Access初心者のものですがよろしくお願いします。 データ: 505:501-1-3 506:54-2-G 601:748-5- 704:56-16- 809:7-8- 上記データに対して、最後尾の"-"のみを削除したいのですがどうしたらよいでしょうか? IIF関数を用いて式を書いているのですが、どうしても「最後尾の"-"を削除」の式などが考え付かずお手上げ状態です。 何か良い方法がありましたら教えてください。
- みんなの回答 (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 以上、乱筆ですが、ご参考いただければ幸いです。
その他の回答 (1)
- -boya-
- ベストアンサー率35% (176/494)
Accessのバージョンによる違いがあるかもしれませんが、、、 (1)Right関数で右側の1文字が"-"かどうかを確認 (2)"-"の場合はLeft関数でデータの左からLen(x)-1文字だけ抜き出す という手法はいかがでしょうか? データを「strA」とするとこんな感じでしょうか? (下記は動作確認してません) If Right(strA, 1) = "-" Then strA = Left(strA, Len(strA) - 1) End If
お礼
なるほど、最後尾の"-"の位置をまず求めるんですね。 "最後尾"を求めればいいだけ。 と簡単に考えていたのですが、簡単にはいかないものですね。 ありがとうございました。