マイクロソフトAccess2010で左右のフィールドの重複文言を削除する方法

このQ&Aのポイント
  • マイクロソフトAccess2010を使用して、左右のフィールドのレコード内で重複した文言を削除する方法を教えてください。
  • 例えば、左のフィールドには「ブリキ看板 テキサコ ダルメシアン TEXACO ブリキカンバン ぶりき看板 ティンサイン サインボード インテリア TINサイン アメリカン雑貨」という文言があり、右のフィールドには「ブリキ看板 ブリキカンバン アメリカン雑貨」という文言があります。左のフィールドから右のフィールドの文言を削除し、「テキサコ ダルメシアン TEXACO ぶりき看板 ティンサイン サインボード インテリア TINサイン」という結果を得たいです。
  • お手数ですが、マイクロソフトAccess2010での左右のフィールドのレコード内での重複した文言の削除方法を教えていただけないでしょうか?
回答を見る
  • ベストアンサー

左右のフィールドのレコード内で重複文言を削除

教えてください。 マイクロソフト Access2010で 左右のフィールドのレコード内で重複した文言を削除したいのですがどうやってよいのか分かりません。 例えば左のレコードに > ブリキ看板 テキサコ ダルメシアン TEXACO ブリキカンバン ぶりき看板 ティンサイン サインボード インテリア TINサイン アメリカン雑貨 入っており右に下記の文言が入っているとします。 > ブリキ看板 ブリキカンバン アメリカン雑貨 左のレコードから右のレコードの文言を削除し > テキサコ ダルメシアン TEXACO ぶりき看板 ティンサイン サインボード インテリア TINサイン という結果が欲しいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

基本的な流れは、ユーザー関数を作成して・・になります。 例えば 標準モジュールに Function delStr(delOrg As String, delList As String) As String Dim delAry As Variant Dim i As Integer delAry = Split(delList, " ") delStr = delOrg For i = LBound(delAry) To UBound(delAry) delStr = Replace(delStr, delAry(i), "") Next End Function とします。 左のフィールドのフィールド名が、F1 として下記が入ってると仮定 ブリキ看板 テキサコ ダルメシアン TEXACO ブリキカンバン ぶりき看板 ティンサイン サインボード インテリア TINサイン アメリカン雑貨 同様に右のフィールドのフィールド名が、F2 として下記が入ってると仮定 ブリキ看板 ブリキカンバン アメリカン雑貨 クエリのデザイングリッドに F1|F2|F3:delstr(F1,F2) とすればF3フィールドに結果が表示されます。 ただ、上の関数はあくまでも基本形ですので以下のような事が不明ですので 期待した結果が出ないと思います。エラー処理も入れてません。 1・ >ブリキ看板 テキサコ 文字と文字の区切りが半角スペースになっているが 全角スペースが紛れ込んでいないか 2・半角スペースが2個以上になっているのがないか 3・>TEXACO<=>texaco 大文字・小文字は同一視するのか 4・TEXACO<=>TEXACO 半角・全角の場合は パッと思いつだけでも色々あります。

rex010101
質問者

お礼

おおーすごいです。早速やってみます。ありがとうございました。

関連するQ&A

  • 重複レコードの削除

    あるテーブル(ここではTESTというテーブルとします)の重複レコードを削除したいので、以下のようなストアド・プロシージャを作成しました。 SELET DISTINCT * INTO TEST2 FROM TEST DELETE FROM TEST SELECT * INTO TEST FROM TEST2 DROP TABLE TEST2 開発終了後、システムの都合上、テーブルの追加はできないことが発覚し、TESTテーブル上で重複レコードを削除しなくてはならなくなりました。 カーソル等を利用すれば重複削除できると思いますが、ほかにシンプルな方法で重複レコードを削除する方法はありませんか?

  • あるフィールドのみ重複するデータを削除したい

    NAME  MAIL      ←フィールド名 Mike   1@mail.com Jackson 1@mail.com Juli    2@mail.com Samon  2@mail.com というデータがあります。MAILに重複がある場合、 たとえば上のデータの場合は、実行後、 Mike   1@mail.com Juli    2@mail.com のように表示されるSQL文を書こうと思います。 MAILフィールドの値が同じで、他フィールドの値が違う場合、任意に一つのデータを残し、そのほかのデータは削除したいのです。 MAILがかぶっているデータは、他の値が何であれ一つだけにする、というのが目的なので、実行後に表示されるものは Jackson 1@mail.com Juli    2@mail.com や、 Mike   1@mail.com Samon  2@mail.com などでもかまいません。 このような操作を実現するSQLのコマンドを、どなたか教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 複数のフィールドの重複削除について。

    例えば1番目と2番目の配列のデータが、すべて11個以上同じデータの 場合、すべて削除したいのですがクエリで対応できますでしょうか。 アドバイスいただけたら助かります。よろしくお願いいたします。 0000-00000 平成5年4月1日 0000-00000 平成5年4月2日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00000 平成5年4月3日 0000-00001 平成5年4月3日 0000-00001 平成5年4月3日 0000-00000 平成5年4月4日 0000-00000 平成5年4月4日 ↓ 0000-00000 平成5年4月1日 0000-00000 平成5年4月2日 0000-00001 平成5年4月3日 0000-00001 平成5年4月3日 0000-00000 平成5年4月4日 0000-00000 平成5年4月4日

  • アクセス2000での重複レコードの削除について

    まず、タイトルの通りなんですが下記URLによる方法を実行して成功したと思っていたのですが、HTMLタグがあるため「メモ型」になっているフィールドがあるのですが、その部分が何故か途中で切れた状態になってしまいます。 想像ですがテキスト型になってしまっているのではないかと思われますが、何か回避策はありますでしょうか。 http://okwave.jp/qa/q2163108.html

  • 一部重複しているレコードの削除

    一部だけ重複しているレコードの削除について教えてください。 検索したのですが、よくわかりませんでした。 f1       f2       f3       f4        f5 -----    -----    -----    -----     ----- 1       2005     T      20       A 2       2007     S      20      B 3       2003     S      20      C 4       2008     T      30      A 5       2005     T      30      C 6       2008     N      30      B 7       2007     T      20      D というようにあったとき、f3とf4が同じであった場合はf2の値がもっとも大きいもの一つを残して他のレコードを削除するというSQL文を考えています。 つまりこの場合にはf1が2,4,7のものを残したいのです。 この時のSQL文はどのようになるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQLで、重複レコードを削除

    no type name ---------------------------- 1 1 peach 1 1 peach 2 5 tomato 4 6 apple 4 6 apple 1 1 peach  上記のように、重複するレコード(行)が存在してしまっているテーブルで、重複をなくす処理を、SQLで簡単に行なうにはどうしたら良いでしょうか。MySQLです。上の例では、下のように更新したいのです。よろしくお願いします。 no type name ---------------------------- 1 1 peach 2 5 tomato 4 6 apple

    • ベストアンサー
    • MySQL
  • 重複レコードの一括削除

    重複データを抽出して、重複しているデータ分だけを一括で削除する事は可能でそうか。 SELECT hoge,count(*) AS count FROM テーブル GROUP BY hoge HAVING count>1 このように出せば重複データを出せたのですが、500件ほどレコードがあり、手作業では辛いです。 お力お貸しくださいませm(_ _)m よろしくお願いします。

    • ベストアンサー
    • MySQL
  • replaceを使って更に重複レコード削除するには?

    下記のように空白除去、ソート、重複行削除を行いたいのですが、 なかなかうまくいきません。どなたか力を貸して下さい。 ----------------- name    | laptime ----------------- 山田太郎  | 50 鈴木 花子 | 20 山田 太郎  | 10 齊藤 二郎 | 60 山田 太郎  | 30 ------------------ ↓ ----------------- name    | laptime ----------------- 山田太郎  | 10 鈴木花子 | 20 齊藤二郎 | 60 ------------------ * laptime が小さい順 * nameの空白除去 * 空白除去後のnameの重複行削除(laptimeが一番小さいものを残す) 下記のようにSQL文を作って発行してみたのですが、 SELECT DISTINCT replace( replace( trim( name ) , ' ', '' ) , ' ', '' ) AS name_a, laptime FROM tyouhuku ORDER BY laptime ASC ----------------- name_a  | laptime ----------------- 山田太郎 | 10 鈴木花子 | 20 山田太郎 | 30 山田太郎 | 50 齊藤二郎 | 60 ------------------ と、空白削除とlaptimeソートまで出来てるのですが、重複行削除ができませんでした。 どなたかご助言、宜しくお願いします!

    • ベストアンサー
    • MySQL
  • 重複レコードを削除するコマンドは、ありませんか?

    バッチファイルにて、 固定長ファイルの重複レコードを削除するコマンドは、ありませんか?

  • ACCESSでの重複レコードの削除

    ACCESSで、重複レコードを引っ張ってくるのは、重複クエリでやれましたが、逆に、重複レコード(1つのフィールド、或いは複数のフィールドに着目しての)の削除は、やれないのでしょうか? イメージしているのは、エクセルのオートフィルタでの「重複データの削除」です。 よろしくお願い致します。