VB.NET内でのSQLの検索(正規表現)について

解決


オーリー  2007-10-12 03:30:55  No: 143956

MS-ACCESSで下記抽出条件を指定したクエリがあります。

  Like "XB*" OR Not Like "*[0-9D]T"

MS-ACCESSのクエリ上では実行できる上記条件が、
VB.NETアプリを通してエクセルへエクスポートすると、
上記抽出条件が実行されません。

このため、VB.NET上でクエリの各データを採取する際にSQL検索を行えばよいと判断し、
下記のように指定していますが、「演算子がありません」と怒られてしまいます。

  SELECT * FROM 差引在庫一覧表 WHERE Like "XB*" OR Not Like "*[0-9D]T$"

正規表現上の問題かと思うのですが、
VB.NET上でどのように指定すればよいものでしょうか。


KG  2007-10-12 03:48:47  No: 143957

SQL文内の「"」って「'」にしないとダメだったような気がします。

MS-ACCESS上からOKですけども。


大吉末吉  2007-10-12 04:26:53  No: 143958

SQLで「正規表現」による検索ってできましたっけ?
#ワイルドカードでは・・・

で、投稿されたSQLに、項目名が指定されていませんが・・・
投稿時の記述誤りですか?

後、
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200308/03080065.txt

の様に、ワイルドカード文字は「*」とは限りませんよね。


オーリー  2007-10-12 17:06:44  No: 143959

・「"」→「'」へ変更
・「*」→「%」へ変更

としてみましたが、「演算子がありません」と出ています。
また、行末を示す「$」を消してもみましたが、変わりありません。

>大吉末吉殿
>項目名が指定されていませんが・・・
記述ミスでした。

現在は、下記のSQL文となっています。

SELECT * FROM 差引在庫一覧表 WHERE Like 'XB%' OR Not Like '%[0-9D]T'

VB.NETでクエリを読み込む場合は、
MS-ACCESSのmdbファイル内のクエリに指定されたSQL文(WHERE句)は実行されないのでしょうか・・。


オーリー  2007-10-12 17:07:55  No: 143960

>現在は、下記のSQL文となっています。
また、項目名を抜かしていました。すみません。

SELECT * FROM 差引在庫一覧表 WHERE 差引在庫一覧表.部品番号 Like 'XB%' OR Not Like '%[0-9D]T'


オーリー  2007-10-12 17:31:54  No: 143961

ケアレスミスでした。
ORの後ろに「項目名」を付けるのを忘れていたのが原因でした。
(ワイルドカードは、「*」ではダメで、「%」でないと正しい結果は得られませんでした)

下記SQL文が正しいものになります。助言ありがとうございました。

SELECT * FROM 差引在庫一覧表 WHERE (差引在庫一覧表.部品番号 Like 'XB%') OR (差引在庫一覧表.部品番号 Not Like '%[0-9D]T')


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加