ある文字を検索をさせているのですが、検索されません。
たとえば、『TTT530-993-01』です。
検索方法として、テキストBOXで取り込み、それを
IF文によって、そこにあるデータで”=”によって
比較しています。
なぜ検索されないのでしょうか?すべての文字で検索
されないわけではないので、原因がわかりません。教えてください!
あまり、内容が伝わっていないのですが、
まずは文字列比較関数(=StrComp)を使うべきでは?
テキストデータをmsflexgridに読み込んで
そのデータとの文字完全一致比較を行いたい
のですが、うまいこといってないのです。
ある文字では"="を使っても検索されるのですが、
『TTT530-993-01』などを検索しても、実際に
存在するのに、結果は存在しないように出力
されるのです。
ためしに、StrCompに変えてみましたが
結果はかわりませんでした・・・・
なにが原因なんでしょうか?
たぶん比較している文字列が異なるからです。
違うから違うといわれているだけ。
同じものを比較しているつもりなら、空白が入っているとか。
元のデータをtrimしたらうまくいくかも。
比較をする前に、入っている文字列を確認しましょう。
元のデータを見てびっくりしました。
データをASCコードにしてみると、
”T”(大文字のT)は”84”なのですが、
データでは”T”(記号かな?)は”-32141”に
なっていました・・・
これってどういうことなんでしょう?
入力ではちゃんと大文字の"T"(ティー)を
入力したはずなのですが・・・・
なにか原因があるんでしょか?
「T」ではなく、
「T」ですね、それは。データを修正しましょう。
もしも「T」と「T」を同一視したいのであれば、StrCompを使用し、
その第3引数に vbTextCompare を指定してみてください。
# ただし、vbTextCompare を使用した場合、
# 「T」と「t」も同一視される事になるので、ご注意を。
みなさんありがとうございました。
なんとかデータを書き換えることで
同一視できることができました!
解決してるのであれですが、入力時に半角全角チェックを
しないとまた同じ事が発生するのでは?
ツイート | ![]() |