文字を検索するには?

解決


もん  2003-12-30 17:12:42  No: 111017  IP: [192.*.*.*]

ある文字を検索をさせているのですが、検索されません。
たとえば、『TTT530-993-01』です。
検索方法として、テキストBOXで取り込み、それを
IF文によって、そこにあるデータで”=”によって
比較しています。
  なぜ検索されないのでしょうか?すべての文字で検索
されないわけではないので、原因がわかりません。教えてください!

編集 削除
いな  2003-12-30 18:16:12  No: 111018  IP: [192.*.*.*]

あまり、内容が伝わっていないのですが、
まずは文字列比較関数(=StrComp)を使うべきでは?

編集 削除
もん  2003-12-31 00:43:11  No: 111019  IP: [192.*.*.*]

テキストデータをmsflexgridに読み込んで
そのデータとの文字完全一致比較を行いたい
のですが、うまいこといってないのです。
  ある文字では"="を使っても検索されるのですが、
『TTT530-993-01』などを検索しても、実際に
存在するのに、結果は存在しないように出力
されるのです。
  ためしに、StrCompに変えてみましたが
結果はかわりませんでした・・・・
なにが原因なんでしょうか?

編集 削除
mady  2003-12-31 16:02:11  No: 111020  IP: [192.*.*.*]

たぶん比較している文字列が異なるからです。
違うから違うといわれているだけ。
同じものを比較しているつもりなら、空白が入っているとか。
元のデータをtrimしたらうまくいくかも。
比較をする前に、入っている文字列を確認しましょう。

編集 削除
もん  2004-01-01 12:47:57  No: 111021  IP: [192.*.*.*]

元のデータを見てびっくりしました。
データをASCコードにしてみると、
”T”(大文字のT)は”84”なのですが、
データでは”T”(記号かな?)は”-32141”に
なっていました・・・

これってどういうことなんでしょう?
入力ではちゃんと大文字の"T"(ティー)を
入力したはずなのですが・・・・
なにか原因があるんでしょか?

編集 削除
魔界の仮面弁士  2004-01-01 13:43:43  No: 111022  IP: [192.*.*.*]

「T」ではなく、
「T」ですね、それは。データを修正しましょう。

もしも「T」と「T」を同一視したいのであれば、StrCompを使用し、
その第3引数に vbTextCompare を指定してみてください。

# ただし、vbTextCompare を使用した場合、
# 「T」と「t」も同一視される事になるので、ご注意を。

編集 削除
もん  2004-01-02 18:55:34  No: 111023  IP: [192.*.*.*]

みなさんありがとうございました。

なんとかデータを書き換えることで
同一視できることができました!

編集 削除
jp  2004-01-05 08:07:17  No: 111024  IP: [192.*.*.*]

解決してるのであれですが、入力時に半角全角チェックを
しないとまた同じ事が発生するのでは?

編集 削除