環境 : Access2003とVB6 SP5
データソースを使ってRDOでAccessからデータを取得しています。
この時のSQLでの質問ですが、
LIKEが不安定で理由が分かりません。
SQLの条件で WHERE 商品名 LIKE '%て%' とします。
これで、実際は商品名はカタカナです。
普段は、「て」で取得できます。
でもたまに、データがカタカナだからなのか
「て」で取得できなくなって、「テ」でないと取得できない時があります。
それに、Accessの場合は、ワイルドカードって「*」ではないのかな?
とも思うのです。
どうか教えてください。お願い致します。
> LIKEが不安定で理由が分かりません。
Jet 4.0 Service Pack 8 は、あててありますか?
> それに、Accessの場合は、ワイルドカードって「*」ではないのかな?
Access VBAのLike演算子では、「*」をワイルドカードとして使えます。
Accessのクエリデザイナ画面で、Jet SQL の LIKE 演算子が
「*」になるか「%」になるかという意味なら、Access 2000以下では
「*」固定ですが、2002以上ではAccess側の設定次第となります。
DAOから、Jet SQLを扱うときの話であれば、常にANSI-89 SQLモードが
使われますので、「*」固定です。
ADOから、Microsoft.Jet.OLEDB.4.0 経由で Jet SQL を扱うなら、
常に ANSI-92 SQLモードになりますので、こちらは「%」固定です。
ADOのRecordsetオブジェクトのFilterプロパティを使うときの話なら、
これは「*」「%」「_」は全て同じ意味を持ちます。
サービスパックはあててあります。
RDOの場合は、「%」になるのでしょうか?
大体の場合は、「て」でデータが「て」「テ」「テ」でも取得できますが、
時々、「て」は「て」のみ、「テ」は「テ」のみ、「テ」は「テ」のみになります。
プログラムを落としてみると、元に戻ったりします。
ツイート | ![]() |