- ベストアンサー
アクセス 複数データの変換
アクセス、またはエクセルで、テーブルのデータを、ほかのテーブルを参照にして、一括で変化する方法を教えてください。 具体的には、一つのテーブルに a b c a b d e f b d f g h となっているデータがあって、もう一つのテーブルに a apple b lemon c orange となっている場合に、最初のテーブルのデータをすべて、その対応する第二テーブルの内容に変換する方法です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 そうですか。フィールドが沢山あるんですか。私なら、あまりフィールドが多いようなら、一度Excelにエクスポートして、[置換]してから再びインポートます。 ・変換したい文字の種類>フィールド数→クエリの多数作成 ・変換したい文字の種類<フィールド数→Excelで[置換] ですかね。Excel、AccessどちらでもVBAで処理を自動化する方法もありますが、一度だけの作業なら今からVBAを勉強するより、これぐらいは手作業でやった方が良いでしょう。毎日変換する必要があるなら、それはテーブル構造を考えた方が良いです。そもそも、Accessでそういうデータの関係のはおかしいということです。
その他の回答 (2)
- fly_moon
- ベストアンサー率20% (213/1046)
そういうことでしたら、更新クエリじゃなく、選択クエリとテーブル作成クエリでやるのがいいかと思います。 (1)テーブル1の[フィールド1]とテーブル2の[フィールド1]を結合させて、テーブル2の[フィールド2]、テーブル1の[フィールド2]、テーブル1の[フィールド3]の3つのフィールドを持つ選択クエリ、クエリ1を作成します。 [クエリ1]選択クエリ テーブル2.フィールド2 テーブル1.フィールド2 フィールド3 apple b c apple b d lemon c c (2)クエリ1の[テーブル1.フィールド2]とテーブル2の[フィールド1]を結合させてクエリ1の[テーブル2.フィールド2]、テーブル2の[フィールド2]、クエリ1の[フィールド3]の3つを持つ選択クエリ、クエリ2を作成します。 [クエリ2]選択クエリ クエリ1.テーブル2.フィールド2 テーブル1.フィールド2 フィールド3 apple lemon c apple lemon d lemon orange c (3)クエリ2の[フィールド3]とテーブル2の[フィールド1]を結合させてクエリ2の[クエリ1.テーブル2.フィールド2]、クエリ2の[テーブル2.フィールド2]、テーブル2の[フィールド2]の3つを持つ選択クエリ、クエリ3を作成します。 [クエリ3]選択クエリ クエリ1.テーブル2.フィールド2 クエリ2.テーブル1.フィールド2 フィールド3 apple lemon orange apple lemon grape lemon orange orange (4)クエリ3をデザインビューで開き、メニューのクエリから、テーブル作成クエリに変更し新しく変更後のテーブルの名前を設定し、クエリを実行すると、新しくテーブルが作成されます。
補足
丁寧な説明ありがとうございます。 でも、フィールドごとに、作業がいるわけですね。 実際のデータは、結構な数のフィールドがあるので 一発で変換できないかと、考えたのですが、 それは無理なんでしょうか。
- fly_moon
- ベストアンサー率20% (213/1046)
クエリはご存知ですか? 更新クエリでできますよ。 テーブル1 フィールド1 フィールド2 a b c a b d e f b d f g h テーブル2 フィールド1 フィールド2 a apple b lemon c orange の場合だと、更新クエリの[レコードの更新]欄は DLookUp("フィールド2 ","テーブル2","フィールド1='" & [テーブル1]![フィールド1] & "'") という式を入れます。それを実行すると テーブル1 フィールド1 フィールド2 a apple a apple b lemon とテーブル1の内容が更新されます。 不慣れな時は間違いが起こり易く、ちょっとした式の間違いでデータが消えてしまったりするので、更新クエリを実行する前に、更新したいテーブルのコピーを作って置いたほうが無難だと思います。
補足
回答ありがとうございます。 ちょっと説明不足でした。 テーブル1は フィールドが次のように3つに分かれているとして、 a b c a b d b c c 返還後は、 apple lemon orange apple lemon grape lemon orange orange となる感じです。 クエリは少しは触るのですが、関数はよくわかりません。 よろしくお願いします。
お礼
やはり、無理なんですね。 変換したい文字の種類>フィールド数 なので、クエリで処理して、なんとかできました。 いろいろとありがとうございました。