- 締切済み
MS Access 複数文字列の置き換えについて
アクセスはデザインビューでクエリを組むことができる程度の初心者です。 できればSQLを直接いじらずにもできる方法でお教え頂ければ幸いです。 1つのテーブル内に30種類の文字を置き換えたい列が10個あります。 置き換えたい列A~Jには、それぞれ異なるデータが入っていますが、置き換えたい内容は同じです。 01~30までの数値をそれぞれ対応する文字あ~ほに置き換えたい列が10個あるということです。 クエリを組んでreplaceやswitchを使うには式が長すぎると怒られてしまいますし、変換用のテーブルを作ろうにも置き換えたい列が10個もあるのでうまく繋げません。 変換用テーブルを10個作ればできるのかもしれませんが、さすがにそこまで無駄なテーブルは作るのは抵抗があります。 何かスマートな方法があればと探しています。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hatena1989
- ベストアンサー率87% (378/433)
テーブルのサンプルが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 お ・・・ 以下略
- hatena1989
- ベストアンサー率87% (378/433)
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]);