- ベストアンサー
アクセスでの文字の抽出について
アクセス2000を使っております。 文字の抽出方法を教えてください。 企業名というデータがあり、 ○○会社 御中 と、御中がついてるものと、 XX会社 と、御中がついてないものとがあります。 これを、クエリーで「御中」を全てつけるか、 「御中」を全てとるか、どちらかにしたいのです。 やればやるほど混乱・・・・。 教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
やはり、データとしては皆さんがおっしゃているとおり、”御中”をとったほうがいいでしょう。そして方法なのですが・・・ >これを、クエリーで「御中」を全てつけるか、・・・ 「クエリ」でと書かれているので、演算フィールドを作る方法でいいのでしょうか?それであれば・・ 「デザインビューでクエリを作成する」→「企業名」の入っているテーブルを追加します。そして下のフィールドのところに以下の式を入れてみてください。 式1: IIf(Right([企業名],2)="御中",Left([企業名],Len([企業名])-2),[企業名]) そうすると、御中の無い企業名ができると思います。 直接テーブルのデータを御中の無い状態に変えてしまいたいのであれば、「更新クエリ」を使います。 「デザインビューでクエリを作成する」→「企業名」の入っているテーブルを追加します。そしてメニューバーの「クエリ」「更新」を選びます。 フィールドは下向き三角から「企業名」を選択します(そうすると自動的にテーブルも選択されると思います)そしてレコードの更新のところに IIf(Right([企業名],2)="御中",Left([企業名],Len([企業名])-2),[企業名]) を入れてください。そして更新クエリを実行すると、テーブルの企業名から御中がなくなると思います。この更新クエリはもし失敗してしまっても元に戻すことができませんから、あらかじめコピーを取ってから実行するといいと思います。
その他の回答 (3)
- ja7awu
- ベストアンサー率62% (292/464)
なんか難しく考えているようですが・・・ テーブルを開いて、メニューから[編集]-->[置換]で 御中 を 空白に 入れ「すべて置換」すれば、いいだけと思います。 御中の前に必ずスペースが入っているのでしたら、その通り指定すると まず、間違いないでしょう。
補足
ありがとうございます。 データの変更は、1に書かせていただいと通りできないのです。 置換は、今後のシステム変更時に使用させていただきます。 ありがとうございました。
- love_junkie28
- ベストアンサー率23% (71/302)
どちらにしたいのかが質問を読んだだけではわからないのですが… まず最初に、御中をつけないほうがいいと思います。 ラベル印刷をすることになった際に、会社や部署名で出すだけなら レポートに「御中」と表示させるテキストを配置すればいいし、 仮に担当者名までテーブルにあるのであれば、御中を会社名につけておくと 「○○会社御中 △△様」 になっちゃいますよね。 で、文字の抽出は、何をどう抽出したいかによるのですが。 よかったら補足してみてください。 わかる範囲でならお答えしたいです。 御中をつけているものだけ抜き出すと言うことであれば クエリのデザインビューで抽出条件を Like "*御中" にすればいいし、御中の付いていないものを抜き出すんであれば Not Like "*御中" にすればいいです。 …ってことではないのでしょうか?
補足
ありがとうございます。 それぞれを抽出するのではなく、企業名のみを抽出したかったのです。 言葉不足ですいませんでした。 久しぶりのAccessで、ワイルドカードの使い方もあやしかった為、勉強になりました。ありがとうございました。
取りあえず、下記(1)、(2)のどちらかのSQLを実行すれば、目先の問題は解決できます。 (1) 敬称を追加 UPDATE テーブル名 SET 列名 = 列名 & ' 御中' WHERE Right(RTrim(列名), 2) = '御中' (2) 敬称を削除 UPDATE テーブル名 SET 列名 = Trim(Replace(列名, '御中', '')) ※ ただし、Replace関数はユーザー定義関数(Publicスコープ)でラップしないと、 SQL文の中では使えません。 で、目先の問題はともかく、社名と敬称とがおなじデータにくっついているのは設計的に不適切です。 法人格(有限会社、株式会社、財団、社団、事業団 ...... e.t.c.)、法人名、 敬称、住所、電話番号 ........ e.t.c. をそれぞれ別々の列で定義すれば、今後、このような煩わしい問題に手が掛かることもないでしょう。
お礼
ありがとうございます。 早速やってみました。 出来ました! データにつきましては、設計としてそうしたいのは山々なのですが、 以前から使用されているシステムにて、「御中」が入っているか入っていないかで判断をするというものがあり、変更できず困っておりました。 ありがとうございました。
お礼
ありがとうございます。 !!!!!そうです。これがやりたかったのです。 (最初の) Len関数をすっかり忘れており、ビルダで必死になにを使っていいのか探してさまよっておりました。 大変勉強になりました。 ”御中”を取るのは、今後の課題とします。 ありがとうございました。