- ベストアンサー
アクセスのレコードデータ一部置換
たとえば「6DBO1282」のようなデーが有り、このなかの0(オー)を0(ゼロ)に更新クエリで置き換えるにはどうしたらいいのでしょうか。 ワイルドカードを使ってもうまく行きません。 例えば、 抽出条件として*o*、レコードの更新として*0*としたら関係データ全てが*0*に置き換わってしまいました。 (テーブル上の検索と置換では出来る事はわかっています。)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
長いですけど・・もっとうまいやり方もあるでしょうけど・・・一応・・・ UPDATE テーブル SET テーブル.フィールド = IIf(InStr(1,[フィールド],"O")=0,[フィールド],Mid([フィールド],1,InStr(1,[フィールド],"O")-1) & "0" & Mid([フィールド],InStr(1,[フィールド],"O")+1,99)); これでなんとかできます。 SQLビューの使い方はご存知ですよね^^; ま、念のため・・ デザインビューで、レコードの更新の欄を IIf(InStr(1,[フィールド],"O")=0,[フィールド],Mid([フィールド],1,InStr(1,[フィールド],"O")-1) & "0" & Mid([フィールド],InStr(1,[フィールド],"O")+1,99)) としてやってください。 どちらにしても、盲目的にフィールドの最初のO(オー)を置き換えてしまいますし、 一つのデータにO(オー)が二つ以上無いのが条件ですので、 そこをご理解いただいたうえでテストください。 バックアップは取っておいてくださいね^^;;
その他の回答 (1)
- NNori
- ベストアンサー率22% (377/1669)
フィールド名をfield1 テーブル名を table1 とすると update table1 set field1 = replace( field1 , "o" , "0" ) where field1 like "*o*" かな。うまくいく気がしないなぁ。
お礼
やっと時間ができてためしてみました。みごと希望の結果を得ることができました。 ありがとうございます。