締切済み

MS Access 複数文字列の置き換えについて

  • 困ってます
  • 質問No.9245193
  • 閲覧数951
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/2)

アクセスはデザインビューでクエリを組むことができる程度の初心者です。
できればSQLを直接いじらずにもできる方法でお教え頂ければ幸いです。

1つのテーブル内に30種類の文字を置き換えたい列が10個あります。
置き換えたい列A~Jには、それぞれ異なるデータが入っていますが、置き換えたい内容は同じです。
01~30までの数値をそれぞれ対応する文字あ~ほに置き換えたい列が10個あるということです。
クエリを組んでreplaceやswitchを使うには式が長すぎると怒られてしまいますし、変換用のテーブルを作ろうにも置き換えたい列が10個もあるのでうまく繋げません。
変換用テーブルを10個作ればできるのかもしれませんが、さすがにそこまで無駄なテーブルは作るのは抵抗があります。

何かスマートな方法があればと探しています。
よろしくお願い致します。

回答 (全2件)

  • 回答No.2

ベストアンサー率 87% (377/432)

テーブルのサンプルがTABが削除されてつながってしまってみにくいので、

T_Data
--------------
ID A B C
--------------
1 01 02 03
2 03 02 01
3 05 04 03

T_Replace
-----------
F1 F2
-----------
01 あ
02 い
03 う
04 え
05 お
・・・
以下略
  • 回答No.1

ベストアンサー率 87% (377/432)

A B C の3列のテーブルを例に回答しますね。

T_Data
--------------
IDABC
--------------
1010203
2030201
3050403

T_Replace
-----------
F1F2
-----------
01あ
02い
03う
04え
05お
・・・
以下略


クエリを新規作成して、上記の2つのテーブルを追加します。
2つのテーブルは繋がずにそのままで。
これを更新クエリにして、下記のように設定します。

フィールド   A
テーブル    T_Data
レコードの更新 Replace([A],[F1],[F2])


フィールド   B
テーブル    T_Data
レコードの更新 Replace([B],[F1],[F2])

フィールド   C
テーブル    T_Data
レコードの更新 Replace([C],[F1],[F2])

このクエリを実行すれば希望の変換ができます。

一応SQLも提示ておきます。
UPDATE T_Data, T_Replace
SET
T_Data.A = Replace([A],[F1],[F2]),
T_Data.B = Replace([B],[F1],[F2]),
T_Data.C = Replace([C],[F1],[F2]);
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ