• ベストアンサー

ACCESS2002 文字列の抜き出しについて

ACCESS2002を使用しています。 ひとつのフィールドに、図1のようなデータがあるのですが、そこから”株式会社”という文字列だけを抜き出して、図2のようにフィールドを分けたいのですが、どのようにすればできるのでしょうか。 図1 ----------------- |   フィールドA   | ================= |株式会社 abc    | |DEF株式会社     | |フラワーショップ    | |   ・         | |   ・         | |   ・         | ----------------------- 図2 ------------------------------- |   フィールドA   |   フィールドB   | =============================== |株式会社      |abc         | |株式会社      |DEF         | |  ・          |フラワーショップ  | |  ・         |  ・        | |  ・         |  ・        | |  ・         |  ・        | ------------------------------- ちなみに、VBAやVBに関する知識はほとんどない状態です。。。 どなたか、宜しくお願い致します!!

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

  • ベストアンサー
  • omusupa
  • ベストアンサー率61% (115/186)
回答No.3

クエリや演算フィールドというのは、わかりますか? オブジェクトから「クエリ」を選んで 新規作成→デザインビュー→(テーブルの表示)というのが出てきますので、 会社名の入っているテーブルを選択し追加して閉じてください。 そして・・・・・下の空欄の部分の「フィールド」というところに 式1: IIf(Left([会社名],4)="株式会社","株式会社",IIf(Right([会社名],4)="株式会社","株式会社","")) 式2: IIf(Left([会社名],4)="株式会社",Mid([会社名],5,Len([会社名])-4),IIf(Right([会社名],4)="株式会社",Left([会社名],Len([会社名])-4),[会社名])) 式1を一番左側に、式2を左から2番目のフィールドのところに、コピーして貼り付けてください。 注意)式にある[会社名]というのは、フィールド名をあらわしていますので、 会社名の入っているフィールドの名前を入れてください。(例題に出されている ものをそのまま使うと、[フィールドA]という名前が入ります。

mayucco
質問者

お礼

omusupaさま できました!! VBAやVBでコーディングしなくても、こんなやり方があるんですね。 Mid関数とかがあるのは知っていたのですが、使い方がわからず途方に暮れていました。 ありがとうございました!!

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 以下の手順で。 1.テーブルにフィールドBとフィールドC(データなし)を追加します。 2.更新クエリで、フィールドBにフィールドAの値をコピー。 3.更新クエリで、フィールドCに"株式会社"を代入  具体的には、  (1)クエリの種類を更新クエリにする  (2)フィールドCのレコードの更新欄に「"株式会社"」と入力する  (3)フィールドAをシートにドラッグし、その抽出条件に、  「Like "*株式会社*"」  と入力する。(レコードの更新欄は何も入力しない。)  (4)クエリを実行する 4.テーブルを開き、フィールドBのどこかにカーソルをおいておく。 5.メニューの[編集]→[置換]で[置換]ダイアログボックスを表示する。 6.ダイアログボックスの各設定を、 [検索する文字列]:「株式会社」 [置換する文字列]:「」(何も入力しない) [探す場所]:「フィールドB」 [検索条件]:「フィールドの一部分」 にして、[すべて置換]をクリックする。 7.不要になったフィールドAを削除する。 8.必要に応じて、フィールドCをフィールドAに変名する。 なお、フィールドBに余分なスペースがある場合は、6.の[検索する文字列]に「 」(スペース)を入力してさらに置換して下さい。

mayucco
質問者

お礼

maruru01さま maruru01さんの手順でも、目的を達成することができました!! 検索や置換も、こんな有効な使い方があったのだと気づきました。 これから、もう少し更新クエリについても学びたいと思います。 本当にありがとうございました。

noname#4564
noname#4564
回答No.1

InStr関数、Replace関数を使えば簡単ですが、 > ちなみに、VBAやVBに関する知識はほとんどない状態です。。。 > どなたか、宜しくお願い致します!! ということなので、 (1) 必要な知識とスキルを身に付ける。 (2) 必要な知識とスキルを持っている外注さんに丸投げする。 (3) あきらめて手作業でやる。 (4) 部下に仕事を押し付けて自分はさっさと帰る。(-_-; どれを選択するかは貴方次第ですが、 外注に仕事を出せる予算(体力)があれば、(2)を、 生産性(作業効率)の向上には関心がないが、残業代は稼ぎたいなら(そして、会社に残業手当を出せる体力があるなら)、(3)を、 外注費も削減したいし、生産性(作業効率)もよくしたいとお考えなら、(4)を お奨めしておきます。  

関連するQ&A