- ベストアンサー
アクセス 部分一致の抽出
アクセスの部分一致の抽出が出来ず困ってます。 テーブル1 テーブル2 あいうえお あいうえお090 かきくけこ かきくけこ090 さしすせそ がぎぐげご010 なにぬねの たちつてと050 なにぬねの020 結果 あいうえお かきくけこ なにぬねの 上のような2つのテーブルでテーブル2がテーブル1と完全一致していれば(前方完全一致が理想です。)それ以外に余計な物が後ろについていても抽出し、結果となるようにしたいのですが、スキルがなく詰まってます。 今回初めてアクセスに触り「できる」の本を見ながらテーブルを作成するところまでは出来たのですが、周りに聞く人もおりません。 皆様のお知恵をお貸しください。 よろしくお願いいたします。 okwave内の他の場所でSQLかVBAかどちらでやりたいのか書いたほうが良いとアドバイスをもらいましたが、私はどちらも自分で使えないレベルです。勝手で申し訳ないのですが、お力をお貸しください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
部分一致は「LIKE」を使います。 http://www.seta.media.ryukoku.ac.jp/manual/office/access/query/selection.html クエリを使う方法を示します。添付図を参照してください。 ポイントは ・リレーションシップ(テーブル同士をつなぐ線)は張らない(あれば削除する)。 ・「抽出条件」を「like [テーブル1].[fld1] & "*"」とする 以上です。
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
現時点では余計なものになるかもしれません。 他の書き方の紹介になります。 クエリのSQLビューに記述します。(フィールド名を両テーブルとも fld1 とした場合) 1)結合条件に記述 SELECT テーブル1.fld1 FROM テーブル1 INNER JOIN テーブル2 ON テーブル2.fld1 like テーブル1.fld1 & '*'; 2)有無を確認する記述 SELECT テーブル1.fld1 FROM テーブル1 WHERE EXISTS (SELECT 1 FROM テーブル2 WHERE テーブル2.fld1 like テーブル1.fld1 & '*'); ※ 2)は編集可能です ※ 実現方法は1つ、ということはほぼないので、いろいろな方法を試して身につけていかれたらと思います。
お礼
30246kiku回答ありがとうございます。 おっしゃる通りいろいろな方法を覚えることに興味があります。 教えて頂いた方法の意味を今度は自分でしらべてみます。 ありがとうございました。
お礼
回答ありがとうございます。サイトで調べたときにlikeを使うなどの言葉は見つかったのですが、具体的な使い方が無く(そのサイトを見る人たちには当り前の知識)でした。アクセスを入れているPCが無く、確認できないのですが、早速試してみます。
補足
cistronezkさん お礼を一回しか入力できない事を知らずおかしな場所でお礼してしつれします。 教えて頂いた方法で無事出来ました。ありがとうございました。