こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB6

株式会社と(株)って同じ意味だと思うんですが、
検索すると下のように処理されてしまいます。

 検索キーに入力したのが(株)○○ならば
 (株)○○と完全一致、もしくは部分一致したデータのみが表示され、  株式会社××は表示されません。
 逆に、検索キーに株式会社××と入力した時は、
 株式会社××と完全一致、
 もしくは部分一致したデータのみが表示され、
 (株)○○は表示されません。
 (有)と有限会社も同様です。

 どうにかして株式会社=(株)と認識させ
 (株)(もしくは株式会社)と検索入力した際に
 (株)、株式会社ともに表示されるようにしたいのですが、
 できるのでしょうか。VB6を使ってます。
 よろしくお願いします。

投稿日時 - 2007-08-22 17:26:47

QNo.3277054

困ってます

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

<table1>
ID___会社名
1____(株)朝日
2____株式会社夕日
3____朝日(株)
4____夕日株式会社

>どうにかして株式会社=(株)と認識させ...

[イミディエイト]
? DBSELECt("select * from table1 WHERE REPLACE(会社名, '株式会社', '(株)') Like '%(株)%';")
1;(株)朝日;
2;株式会社夕日;
3;朝日(株);
4;夕日株式会社;

書かれている範囲でしたら・・・。

ただし、DBの設計の問題であれば、通常は、列[会社区分]を設けるでしょうね。

>株式会社と(株)って同じ意味だと思うんですが・・・

社名として捉えれば同一視できないですよね。
会社区分として捉えれば同一視できますよね。
この、社名と区分の矛盾を解消するには列[会社区分]を設ければ一発です。

その辺りの事情が皆目不明ですから何とも言えないです。

投稿日時 - 2007-08-23 09:24:14

お礼

回答ありがとうございます。

>>社名と区分の矛盾を解消するには列[会社区分]を
設ければ一発です。

なるほど。
そういう考え方もあったのですね。
列の追加という考えがすっぽい抜けていました。
参考にさせてもらいます!

投稿日時 - 2007-08-23 20:12:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

基本的に「株式会社」と「(株)」は同じです。
しかし宛先に「(株)」と表記すると失礼に当たることもあります。

また、検索のことを考慮すると、会社名フィールドには「株式会社」等を抜いた名称を保存し、「会社区分ID」と「前・後」の各フィールドを追加設定することをお勧めします。
さらに別途、「会社区分マスタ」を追加し、
「会社区分ID」「会社区分名」「略号」といったフィールドを設定しては如何でしょう。

投稿日時 - 2007-08-23 21:06:19

お礼

回答ありがとうございます。
返事が遅くなって申し訳ありません。

新しく会社区分を追加する事で
無事解決をする事ができました。

投稿日時 - 2007-08-27 14:08:12

ANo.5

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

投稿日時 - 2007-08-22 21:10:06

お礼

回答ありがとうございます。

そこまで考えが及びませんでした・・・

投稿日時 - 2007-08-23 20:10:51

ANo.4

他の方々の回答のように、入力された検索キーを分解して(「株式会社××」と入力されたら、「株式会社」と「××」に分解して)、株式会社の部分はOR条件で、××の部分はAND条件で検索すれば求める結果になると思いますが・・・

かなり大変ですよ。

「株式会社」だけを見ても、(株),カ),(カブ),(K.K.)・・・などなど色々な省略をされますので、全パターンを考慮しないといけません。
有限会社,合資会社,学校法人,医療法人・・・などなどに対して同じように考えてあげないといけません。

もし可能なら、検索対象がDBなのかファイルなのかわかりませんが、1度データを見直して、正規化(データ上は必ず株式会社と登録)された上でロジックを考えられることをおすすめします。

または運用で、検索キーに株式会社などは入力しないで、会社の固有名だけを入力してください・・・とするかですね。

投稿日時 - 2007-08-22 18:13:00

補足

回答ありがとうございます。

検索対象はDBです。
そうですね。一度見直してみようかと思います。

投稿日時 - 2007-08-23 20:06:40

ANo.3

希望の結果を得たい場合、通常なら like (株式会社* OR (株)*) という風にORしますよね?(記述は例です。)

同様に検索を始める前に検索ワードを確認して指定のワードが含まれた場合はORで追加してあげれば良いかと思います。

でもK.K.はどうするのでしょう??
K.K とする人もいますし、KKとする人もいます。

どのような使途なのか不明ですが、通常インターネットなどで会社を調べるときに株式会社○○ とはあまり検索せずに、単に会社名 ○○ と検索するような気がするのですが、、、

投稿日時 - 2007-08-22 17:46:11

補足

回答ありがとうございます。
そうですね、検索する際に株式会社○○とまで入れることは
確かに稀ですね・・

使途というか、会社での練習問題なので
特に他の会社で使うという事ではないと思います。

投稿日時 - 2007-08-23 20:01:47

ANo.2

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

投稿日時 - 2007-08-22 17:44:04

補足

回答ありがとうございます。

あくまで、会社の練習問題なので
区分は株式会社と有限会社のみでいいようです

投稿日時 - 2007-08-23 20:07:49

ANo.1

VBで組んでいるのであれば、(株)、(有)の場合に例外処理をさせればよいのでは?

if instr(input,"(株)") > 0 then
input = left( instr(input,"(株)") ) & "株式会" & mid ( instr(input,"(株)") ,)

みたいな感じで。
書いてる内にこんがらがってきたのでこの辺で。

投稿日時 - 2007-08-22 17:41:24

お礼

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

投稿日時 - 2007-08-23 19:53:04

あなたにオススメの質問