- ベストアンサー
Access 置換を更新クエリで組めませんか?
フィールドに「123万円」とあるのを、万円を除いた数字だけ(123)にしたいです。 置換しようとしたところ、1件ずつだとうまくいきますが、『すべて置換』を選択すると エラーがでます。件数が多いため、1件ずつ置換なんてしていられません。 更新クエリで置換することはできないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
質問内容のような更新なら UPDATE テーブル名 SET テーブル名.フィールド名 = Mid([フィールド名],1,InStr([フィールド名],"万")-1); これでも出来ます。 万の文字の位置を求めてその前までを切り出し左から数えて"万"の文字以降を切り捨てて更新します。 #4の方の=REPLACE(フィールド名, '万円', '')でも同じ様な結果です。 #3の方の=left([フィールド名],len([フィールド名])-2)を更新クエリに変更すれば UPDATE テーブル名 SET テーブル名.フィールド名 = left([フィールド名],len([フィールド名])-2) となります。この場合もし万円の後ろにスペースがあるとスペースも数えられてしまい桁ずれしますがスペース等無ければ同じ結果です。 メニューの編集にある置換ですが検索する文字列を 万円 置換後の文字列を何も入力せずブランクで 探す場所でフィールドを指定し検索の条件にフィールドの一部分で出来るはずですが・・出来ない場合はそのフィールド全部を指定するようにテーブルのフィールド名をクリックしフィールド全体を指定してやれば出来るはずです。
その他の回答 (4)
- s___o
- ベストアンサー率35% (108/306)
以下のSQL文で「万円」を削除できます。 UPDATE TEST SET AMT = REPLACE(AMT, '万円', ''); テーブル名:TEST フィールド名:AMT
=left([フィールド名],len([フィールド名])-2) のような形で書けば右2文字が削除されますが、 ためしに、選択クエリで実行してみて値が正しければ、更新に作り変えてください。
- mshr1962
- ベストアンサー率39% (7417/18945)
#1のmshr1962です。 すみません。ひとつ漏らしてました。 Access2000以降の場合は、検索条件は「フィールドの1部分」にしてください。
- mshr1962
- ベストアンサー率39% (7417/18945)
通常は「万円」を「」(ブランク)に置換で大丈夫なはずですが? もしかして「123万円」を「123」に置換してますでしょうか?