出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() |
[4918] 取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:モリモリさん 2005/02/02 17:17:01 |
基本画面の4つのTEXTBOXから値を入力し、その値を検索条件としてIframeに表示させたいのですが、1つでもnullがあった場合はエラーになります。プログラミングが初めてなので、IF文で分岐しようとするととっても長くなってしまいます。。。 何か良い方法があれば、助言をお願いします。 (※コードを長々とすみません。) ■エラー:クエリ式 'GrpName like '%愛%' and 担当者コード=1182 and 営業コード=' の 構文エラー : 演算子がありません。 ■コード: '営業区分で分岐し、表示させる select case Request.Form("AAA") 'ホール(0)だった場合、この処理 case 0 strTbl="tbl_Hall" strCD="HallCD" strNAME="HallName" strKenTokuhan="県コード" strSQL="" strSQL="select * from " & strTbl & " " strSQL= strSQL & "where " & strNAME & " like '%" & Request.Form("txt_c") & "%' " strSQL= strSQL & " and " & strKenTokuhan & "=" & Request.Form("txt_tk") & " ;" '法人(91)だった場合、この処理 case 91 strTbl="tbl_Houjin" strCD="HoujinCD" strNAME="HoujinName" strKenTokuhan="県コード" strSQL="" strSQL="select * from " & strTbl & " " strSQL= strSQL & "where " & strNAME & " like '%" & Request.Form("txt_c") & "%' " strSQL= strSQL & " and " & KenTokuhan & "=" & Request.Form("txt_tk") & " ;" 'グループだった場合、この処理 case 90 strTbl="tbl_Grp" strCD="GrpCD" strNAME="GrpName" strKenTokuhan="担当者コード" strEIGYOU="営業コード" strSQL="" strSQL="select * from tbl_Grp " strSQL= strSQL & "where " & strNAME & " like '%" & Request.Form("txt_c") & "%' " strSQL= strSQL & " and " & strKenTokuhan & "=" & Request.Form("txt_t") strSQL= strSQL & " and " & strEIGYOU & "=" & Request.Form("txt_e") & " ;" end select |
[4919] Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:ryuさん 2005/02/03 9:54:58 |
発言者により削除されました!! |
[4921] Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:ryuさん 2005/02/03 10:13:09 |
Nullの場合も処理を行うのでしょうか? それとも行わないのかな? もし、NUllの場合に処理をしないのであれば、Select Case文をIf文ではさんでやれば良いのではないでしょうか? 例えば If IsNull(テキストに入れた変数) <> True Then (↑入力値がNullで無い場合) Select Case Case 1 ・ ・ ・ ・ End Select End If という感じで。 これで、Nullじゃない場合はSelect文を通らなくなるのでエラーにはならくなると思うのですが? あとは、SQLがWHERE句を除いて同じみたいなので、 strSGL = strSQL & "SELECT〜 IF IsNull("AAA") <> True Then strSQL = strSQL & "WHERE 〜 End If みたいに、where句をIf文で分岐さてみるという手もあります。 参考になればいいのですが(^^; |
[4923] Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:ryuさん 2005/02/03 10:38:43 |
発言者により削除されました!! |
[4924] Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:ryuさん 2005/02/03 10:39:40 |
あう、ちと修正を・・・ > Nullじゃない場合はSelect文を通らなくなる じゃなくて 「Nullの場合はSelect文を通らなくなる」 ですね(^^; |
[4926] Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。 |
投稿者:モリモリさん 2005/02/04 21:29:49 |
ryuさん。 レスありがとうございます(^^゛)/ NULLの場合も処理を行うので、以下のとおりに記述しました。 select case Request.Form("AAA") 'ホール(0)だった場合、この処理 case 0 strSQL="" strSQL="select * from " & テーブル名 & " " if Request.Form("顧客名") = "" and Request.Form("県名") <>"" then '顧客名がNULLだった場合 strSQL= strSQL & " WHERE 県名=" & Request.Form("県名") & " ;" elseif Request.Form("県名") = "" and Request.Form("顧客 名") <>"" then '県名がNULLだった場合 strSQL= strSQL & "where 顧客名 like '%" & Request.Form("顧 客名") & "%' ;" elseif Request.Form("顧客名") = "" and Request.Form("県 名") = "" then '顧客名&県名がNULLだった場合 strSQL= strSQL & " ;" else '値が全て入っていた場合 strSQL= strSQL & "where 顧客名 like '%" & Request.Form ("県名") & "%' " strSQL= strSQL & " and 県名=" & Request.Form("県名") & " ;" end if 以下略・・・・ という感じでIF文で分岐しました!エラー解消です(^0^) ありがとうございました。 |
TreeBBS For ASP V.0.1.3 |