こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLエラーについて

ora-00907エラー:右かっこがありませんが出ます。なぜでしょうか??

strSQL = strSQL + "select K.Hiduke 日付,S.Syouhinmei 商品名,S.Tanka 単価,K.Suryou 数量,(S.Tanka * K.Suryou) 金額";
strSQL = strSQL + " from SyohinHyo S,Kounyurireki K";
strSQL = strSQL + " where K.Syouhinbangou = S.Syouhinbangou and K.Hiduke";
strSQL = strSQL + " between to_date(" + comboBox1 +",'YYYY-MM-DD') and ";
strSQL = strSQL + " to_date(" + comboBox2 + ",'YYYY-MM-DD')";

投稿日時 - 2010-11-23 21:34:14

QNo.6339569

すぐに回答ほしいです

質問者が選んだベストアンサー

comboBox1、comboBox2 は必ず'YYYY-MM-DD'形式で入力されてますか?
#1さんのご指摘の通り、シングルクォートで囲まないまま入力が'YYYY/MM/DD'形式だと、
/を実行指令と解釈しておかしくなるかも。

先頭1行目は、右辺のstrSQLを省略しておかないと、何があるかわからないので注意されたほうが良いですよ。

strSQL = "select K.Hiduke 日付, S.Syouhinmei 商品名, S.Tanka 単価, K.Suryou 数量, (S.Tanka * K.Suryou) 金額";
strSQL = strSQL + " from SyohinHyo S, Kounyurireki K";
strSQL = strSQL + " where K.Syouhinbangou = S.Syouhinbangou";
strSQL = strSQL + " and to_char(K.Hiduke, 'YYYY-MM-DD') ";
strSQL = strSQL + " between '" + comboBox1 + "' and '" + comboBox2 + "'";
'ここでMessage Box でも用いて組み立てたstrSQLの中身を確認する

投稿日時 - 2010-11-23 22:17:47

お礼

毎回ご回答いただきありがとうございます。
とても助かりました!!おかげさまであとはCrystalReportを使うだけになりました。

投稿日時 - 2010-11-24 23:25:38

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

strSQL = strSQL + " between to_date(" + comboBox1 +",'YYYY-MM-DD') and ";
strSQL = strSQL + " to_date(" + comboBox2 + ",'YYYY-MM-DD')";

最後の2行を以下に変えたらどうでしょうか?
’で代入文字をくくっています。

strSQL = strSQL + " between to_date('" + comboBox1 +"','YYYY-MM-DD') and ";
strSQL = strSQL + " to_date('" + comboBox2 + "','YYYY-MM-DD')";

よろしくお願いします。

投稿日時 - 2010-11-23 21:40:55

補足

strSQL = strSQL + " between to_date('" + comboBox1 +"','YYYY-MM-DD') and ";
strSQL = strSQL + " to_date('" + comboBox2 + "','YYYY-MM-DD')";で行うと
ora-01841:(周)年は-4713と+9999の間で指定しなければなりませんが、0であってはなりません。が出るのですがどうすればいいでしょうか??

投稿日時 - 2010-11-23 22:01:15

-広告-
-広告-
-広告-
-広告-