出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。   モリモリさん [2005/02/02 17:17:01] [4918]
  発言者により削除されました!! ryuさん [2005/02/03 9:54:58] [4919]
  Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。   ryuさん [2005/02/03 10:13:09] [4921]
    発言者により削除されました!! ryuさん [2005/02/03 10:38:43] [4923]
    Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。   ryuさん [2005/02/03 10:39:40] [4924]
    Re:取得した値がnull値の場合の、SELECT分の分岐(*.*)。。。   モリモリさん [2005/02/04 21:29:49] [4926]

[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
Program By YasNet