次の方法で共有

Access VBA の StrComp 関数を利用し、差異がある文字列を比較しても差異があるとして検知できない場合について

Anonymous
2010-12-29T09:53:36+00:00

AccessVBAの「StrComp」関数で、2つの文字列を比較した際、比較する文字列に下記文字が含まれていると差異があるにも拘らず「2つの文字列は同じ」と結果が返ってきます。

 /|:*"?<>|  ※全て半角

つまり、ある文字が含まれると、比較する2つの文字に差異があっても検知できないように見受けられるのですが、これはなぜですか?

下記、例以外にも「この文字が含まれていると、差異があっても検知できない」ものはありますか?

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-12-29T13:59:31+00:00

これは、Access(VBA)のデフォルトがバイナリーで区別するようになって

いないのでこのような事が起こるらしい

試しに、StrComp関数を使ってイミディエイトウィンドウで確認すると

以下のようになります。

?strcomp("ー","々",vbBinaryCompare)

1

?strcomp("ー","々",vbDatabaseCompare)

0

?strcomp("ー","々",vbTextCompare)

0

参考

http://office.microsoft.com/ja-jp/access-help/HA001228914.aspx

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-01-12T06:18:47+00:00

    しゃく さん、コメントありがとうございます。

    Fukaz さん、こんにちは。

    StrComp 関数で差異がある文字列を比較しても、同じ文字列として結果が返るという事ですが、具体的にどういう文字列を比較したのかも分かるとよいかなと思います。

    また、ご使用の Office のバージョン等もわかるとよいかと思います。

     ・Office のバージョンを確認する

     http://answers.microsoft.com/ja-jp/office/ee677091.aspx#1

    まずは、しゃく さんからいただいたコメントにもありますように、StrComp 関数の文字列比較のモードを指定する引数を変更した場合、どのような結果になるのか確かめてみるのもいいかもしれません。

    同じような問題でお悩みの方にも、こちらを問題の確認点として参考いただければと思い、今回は私の方で \[回答としてマーク\] をさせていただきました。

    Fukaz さんの方で引き続き返信がしたい場合は、ご遠慮なくマークを解除して投稿を続けてください。

    確認の結果、お待ちしていますね。

    今後も Answers をよろしくお願いします。


    石田 優 – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません