アプリ版:「スタンプのみでお礼する」機能のリリースについて

iserease のDB2 UDBに対してODBC接続のVBAでSQLを書いています。
下の構文のWHERE句に対しOR条件を加えると
読むレコードがゼロ件になってしまいました。

QSQL = QSQL & " WHERE TNO='" & PTNO & "'"
QSQL = QSQL & " OR TNO='" & PSPC & "'"

1行目のPTNOの指定だけだと抽出できます。
なぜでしょうか。よろしくお願いします。

A 回答 (2件)

同じようにやってみましたが、私は普通にレコードが取得できます。



レコードセットを開く直前に、QSQLをmsgboxか何かに出力して
意図したsqlになっているか再確認してみてはいかがでしょうか。

この回答への補足

ちゃんとなってました,,,

補足日時:2010/04/30 15:17
    • good
    • 0
この回答へのお礼

前述の構文のすぐ前にあるLeft join が原因でした。
存在しないデータをLeft joinしようとした場合ゼロ件(?)になってしまうようでした。
MSGBOXで見てたらわかりました。ありがとうございました!

お礼日時:2010/04/30 16:58

OR条件を加えるとゼロ件って不思議ですね。

。。

原因はわかりませんが、以下の場合はどうなりますか?

QSQL = QSQL & " WHERE TNO IN ('" & PTNO & "', '" & PSPC & "')"

この回答への補足

一緒でした。TNOがPTNOの場合のみデータが取れました。

補足日時:2010/04/30 15:23
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2010/04/30 16:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!