• ベストアンサー

VB6

株式会社と(株)って同じ意味だと思うんですが、 検索すると下のように処理されてしまいます。  検索キーに入力したのが(株)○○ならば  (株)○○と完全一致、もしくは部分一致したデータのみが表示され、  株式会社××は表示されません。  逆に、検索キーに株式会社××と入力した時は、  株式会社××と完全一致、  もしくは部分一致したデータのみが表示され、  (株)○○は表示されません。  (有)と有限会社も同様です。  どうにかして株式会社=(株)と認識させ  (株)(もしくは株式会社)と検索入力した際に  (株)、株式会社ともに表示されるようにしたいのですが、  できるのでしょうか。VB6を使ってます。  よろしくお願いします。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.6

<table1> ID___会社名 1____(株)朝日 2____株式会社夕日 3____朝日(株) 4____夕日株式会社 >どうにかして株式会社=(株)と認識させ... [イミディエイト] ? DBSELECt("select * from table1 WHERE REPLACE(会社名, '株式会社', '(株)') Like '%(株)%';") 1;(株)朝日; 2;株式会社夕日; 3;朝日(株); 4;夕日株式会社; 書かれている範囲でしたら・・・。 ただし、DBの設計の問題であれば、通常は、列[会社区分]を設けるでしょうね。 >株式会社と(株)って同じ意味だと思うんですが・・・ 社名として捉えれば同一視できないですよね。 会社区分として捉えれば同一視できますよね。 この、社名と区分の矛盾を解消するには列[会社区分]を設ければ一発です。 その辺りの事情が皆目不明ですから何とも言えないです。

yobakuri
質問者

お礼

回答ありがとうございます。 >>社名と区分の矛盾を解消するには列[会社区分]を 設ければ一発です。 なるほど。 そういう考え方もあったのですね。 列の追加という考えがすっぽい抜けていました。 参考にさせてもらいます!

その他の回答 (6)

noname#79209
noname#79209
回答No.7

基本的に「株式会社」と「(株)」は同じです。 しかし宛先に「(株)」と表記すると失礼に当たることもあります。 また、検索のことを考慮すると、会社名フィールドには「株式会社」等を抜いた名称を保存し、「会社区分ID」と「前・後」の各フィールドを追加設定することをお勧めします。 さらに別途、「会社区分マスタ」を追加し、 「会社区分ID」「会社区分名」「略号」といったフィールドを設定しては如何でしょう。

yobakuri
質問者

お礼

回答ありがとうございます。 返事が遅くなって申し訳ありません。 新しく会社区分を追加する事で 無事解決をする事ができました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

後株・前株 略号種類 (株)、株)、(株、KK、kk.、株式会社、カ)    会社名本体との間のスペースの有無 会社組織種類 株式、合資、合名、有限、社団法人・・ 略称・俗称 トヨタ トヨタ自動車 この組み合わせで、ありえるわけですから、大変です。 仕事や他人が使うソフト・売り物のソフトなら、やはり丁寧に作りこまないと。 これはVBに頼れる部分は多くありません。Like *もInstr 関数とそんなにかわらない。 面倒ですが、コードが長くなっても、やると決心することです。

yobakuri
質問者

お礼

回答ありがとうございます。 そこまで考えが及びませんでした・・・

noname#41855
noname#41855
回答No.4

他の方々の回答のように、入力された検索キーを分解して(「株式会社××」と入力されたら、「株式会社」と「××」に分解して)、株式会社の部分はOR条件で、××の部分はAND条件で検索すれば求める結果になると思いますが・・・ かなり大変ですよ。 「株式会社」だけを見ても、(株),カ),(カブ),(K.K.)・・・などなど色々な省略をされますので、全パターンを考慮しないといけません。 有限会社,合資会社,学校法人,医療法人・・・などなどに対して同じように考えてあげないといけません。 もし可能なら、検索対象がDBなのかファイルなのかわかりませんが、1度データを見直して、正規化(データ上は必ず株式会社と登録)された上でロジックを考えられることをおすすめします。 または運用で、検索キーに株式会社などは入力しないで、会社の固有名だけを入力してください・・・とするかですね。

yobakuri
質問者

補足

回答ありがとうございます。 検索対象はDBです。 そうですね。一度見直してみようかと思います。

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.3

希望の結果を得たい場合、通常なら like (株式会社* OR (株)*) という風にORしますよね?(記述は例です。) 同様に検索を始める前に検索ワードを確認して指定のワードが含まれた場合はORで追加してあげれば良いかと思います。 でもK.K.はどうするのでしょう?? K.K とする人もいますし、KKとする人もいます。 どのような使途なのか不明ですが、通常インターネットなどで会社を調べるときに株式会社○○ とはあまり検索せずに、単に会社名 ○○ と検索するような気がするのですが、、、

yobakuri
質問者

補足

回答ありがとうございます。 そうですね、検索する際に株式会社○○とまで入れることは 確かに稀ですね・・ 使途というか、会社での練習問題なので 特に他の会社で使うという事ではないと思います。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

kaisyamei like '(株)%' or kaisyamei like '%(株)' or kaisyamei like '株式会社%' or kaisyamei like '%株式会社' という条件で、検索すれば可能ですが、 会社区分は、株式会社・有限会社だけではないですから、 結構大変ですよ。

yobakuri
質問者

補足

回答ありがとうございます。 あくまで、会社の練習問題なので 区分は株式会社と有限会社のみでいいようです

  • j_nishiz
  • ベストアンサー率26% (183/697)
回答No.1

VBで組んでいるのであれば、(株)、(有)の場合に例外処理をさせればよいのでは? if instr(input,"(株)") > 0 then input = left( instr(input,"(株)") ) & "株式会" & mid ( instr(input,"(株)") ,) みたいな感じで。 書いてる内にこんがらがってきたのでこの辺で。

yobakuri
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

関連するQ&A