• ベストアンサー

Access 置換を更新クエリで組めませんか?

フィールドに「123万円」とあるのを、万円を除いた数字だけ(123)にしたいです。 置換しようとしたところ、1件ずつだとうまくいきますが、『すべて置換』を選択すると エラーがでます。件数が多いため、1件ずつ置換なんてしていられません。 更新クエリで置換することはできないのでしょうか?

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

質問内容のような更新なら UPDATE テーブル名 SET テーブル名.フィールド名 = Mid([フィールド名],1,InStr([フィールド名],"万")-1); これでも出来ます。 万の文字の位置を求めてその前までを切り出し左から数えて"万"の文字以降を切り捨てて更新します。 #4の方の=REPLACE(フィールド名, '万円', '')でも同じ様な結果です。 #3の方の=left([フィールド名],len([フィールド名])-2)を更新クエリに変更すれば UPDATE テーブル名 SET テーブル名.フィールド名 = left([フィールド名],len([フィールド名])-2) となります。この場合もし万円の後ろにスペースがあるとスペースも数えられてしまい桁ずれしますがスペース等無ければ同じ結果です。 メニューの編集にある置換ですが検索する文字列を 万円 置換後の文字列を何も入力せずブランクで 探す場所でフィールドを指定し検索の条件にフィールドの一部分で出来るはずですが・・出来ない場合はそのフィールド全部を指定するようにテーブルのフィールド名をクリックしフィールド全体を指定してやれば出来るはずです。

その他の回答 (4)

  • s___o
  • ベストアンサー率35% (108/306)
回答No.4

以下のSQL文で「万円」を削除できます。 UPDATE TEST SET AMT = REPLACE(AMT, '万円', ''); テーブル名:TEST フィールド名:AMT

noname#60992
noname#60992
回答No.3

=left([フィールド名],len([フィールド名])-2) のような形で書けば右2文字が削除されますが、 ためしに、選択クエリで実行してみて値が正しければ、更新に作り変えてください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

#1のmshr1962です。 すみません。ひとつ漏らしてました。 Access2000以降の場合は、検索条件は「フィールドの1部分」にしてください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

通常は「万円」を「」(ブランク)に置換で大丈夫なはずですが? もしかして「123万円」を「123」に置換してますでしょうか?