• 締切済み

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

アクセスはデザインビューでクエリを組むことができる程度の初心者です。 できればSQLを直接いじらずにもできる方法でお教え頂ければ幸いです。 1つのテーブル内に30種類の文字を置き換えたい列が10個あります。 置き換えたい列A~Jには、それぞれ異なるデータが入っていますが、置き換えたい内容は同じです。 01~30までの数値をそれぞれ対応する文字あ~ほに置き換えたい列が10個あるということです。 クエリを組んでreplaceやswitchを使うには式が長すぎると怒られてしまいますし、変換用のテーブルを作ろうにも置き換えたい列が10個もあるのでうまく繋げません。 変換用テーブルを10個作ればできるのかもしれませんが、さすがにそこまで無駄なテーブルは作るのは抵抗があります。 何かスマートな方法があればと探しています。 よろしくお願い致します。

みんなの回答

回答No.2

テーブルのサンプルが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

A B C の3列のテーブルを例に回答しますね。 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 お ・・・ 以下略 クエリを新規作成して、上記の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]);