• ベストアンサー

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/17068)
回答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

  • VB6について質問です。

    フォルダを検索できるツールを作成してます。 【検索フォルダ】テキストボックスがあり、 例)C:\ と入力されてる場合、C:\の配下にあるフォルダをリストボックスに表示されます。 全てのフォルダを表示させるのではなく、 【検索条件】テキストボックスに 入力された文字列を (1)前方一致(2)完全一致(3)部分一致の 3つのオプションボタンにチェックを入れて検索ボタンで検索する処理を作成したいと思ってます。 全てのフォルダを表示させることはできたのですが、3パターンの検索条件で絞り込み表示させる方法がわかりません。。。。 Likeメソッドを使用すればよいのか… 方法わかる方いらっしゃいましたら教えてください。 よろしくお願いいたします。

  • VB リストボックスのGotFocusについて

    リストボックスのイベントでGotFocusを採用している部分があります。 リスト内の任意のレコード(表示データ部分)をクリック、もしくは クリックされた後に上矢印のキーを押すと、GotFocusイベントが働く のですが、それ以外の矢印キー(左右と下)に関してはキーを押しても GotFocusイベントの部分をプログラムが走りません。左右は問題視 していませんが、できれば、任意のレコードをクリックした後で、 下矢印キーを押してもGotFocusイベントが動くようにしたいのですが どのようにすればよろしいのでしょうか。 バージョンはVB6です。

  • VB6.0でACCESSのコマンドを実行するには?

    教えてください。よろしくお願いします。 VB6.0のプログラムからACCESSに文字データを渡し、それをキーにしてACCESSのテーブルから該当するデータをACCESSのテキストボックスに表示させたいのですが、検索・表示のプログラムはACCESSで記述ずみですので、VBからは引数を渡して、ACCESS側のVBAのプログラムを実行させたいのです。 その際、ACCESSの引数を渡すMDBが起動していなかったら、起動させて、上記の処理をさせたいのですが。 分かりづらい文章で申し訳ありませんが、どなたかアドバイスをお願い致します。

  • キーの入力をVBで受けたいんです。

    VBで簡単な業務支援をしたいと思っています。 VBのアプリケーションがアクティブになっていなくても(起動はしてる)、あるキーの入力を感知して、VBがアクティブになりイベントが動くような処理はできないでしょうか? できればVBでやりたいのですが、Windowsの機能やAPIを使ってでもかまいませんので方法がありましたら教えてください。

  • VBでMDBテーブルのKEYを指定した参照をしたい

    こんにちわ マスタデータのメンテナンス処理をVBで作ろうと思ってます。 MDBの顧客テーブルがあります。検索画面で顧客コードを入力して顧客テーブルより情報を表示して変更入力し、結果を顧客テーブルに反映更新する処理です。 検索画面で指定されたコードでテーブルを読むにはどのように書いたらよいのでしょうか。 皆様よろしくお願いいたします。

  • VB6のインストールでDCOMユーザーアカウントが作成できない

    前に一度アンインストールVB6ですが、急遽VB6が必要になり、 VB6をインストールしようとしたのですが、CDキーを入力する画面で、 名前と会社名が前に入力したものと、同じものが表示されていて おかしいな?と思ったのですが、そのまま作業をつづけていたのですが、 コピーが終わり設定処理のところで、 DCOMユーザアカウントが作成できませんでした。 とエラーメッセージが表示され、インストールできませんでした。 レジストリをいじらなければ、いけないような気がするのですが、 どのようにすればインストールできるかご教示をお願いいたします。 PS:ビジュアルスタジオ6.0エンタープライズ版からVB6のみをインストールしようとしています。

  • VB6のアプリで、非アクティブの状態でキープレビューする方法

    教えてください。 VBで作成したアプリで、アイコン・最小化状態もしくは非アクティブ状態で、キーボードからの入力を先取り、認識する方法は無いでしょうか? (他のアプリケーションでの操作画面をキャプチャして、保存したいのです。従って、他のアプリケーションがアクティブになっています。そのような状態の中で、あるキー入力を先取り、認識して処理したいものです)

  • エクセルとVBのマッチング

    エクセルのデータのマッチングでVBを使おうと思っていますが、苦しんでます。 エクセルのシート1に参照元になるデータを取得する(ID、氏名など6つの項目)。 VBのユーザーフォームで6つのテキストボックスを用意する。 ユーザーフォームに入力されたIDがシート1のIDと一致したら、ユーザーフォームのテキストボックスにID以外の項目をシート1から拾い出す。 登録ボタンを押すとIDを含めた6つの情報がシート2に移動する。 といった処理をVBで行いたいと思うのですが、どなたかご教授下さいませんでしょうか。 よろしくお願い致します。

  • Excel2003 VB コマンドボタン

    Excel2003 VB コマンドボタン VB初心者です。コマンドボタンをクリックしたら、テキストボックス1に入力してあるコードと一致する値を別シートのデータTBからvlookupで呼び出してテキストボックス2に表示したいのですが、うまくいきません。コードの例を教えていただけると助かります。よろしくお願いします。

  • VBで、非アクティブでも入力を受け取る

    VBをやっている中学生です。 いま、ウインドウ上にキーボードのカタチをしたものを表示させ、ユーザーが押したキーに応じてそのどこかのキーの色が変わるというソフトを作成しようと思っています。 それにあたっていくつか質問があります。 1.VBでウインドウを常に最善面に表示する方法を教えてください 2.ウインドウがアクティブになってなくても、キーさえ押されればその入力を受け取る方法を教えてくださ い。 ちなみに、キーが押されている間だけ色をかえさせたいので  KeyDownと KeyUpを利用しようと思っています。 回答よろしくお願いします。