 |
|
|
 |
 |
|
dim a1, a2, a3, a4, a5, a6
a1 = cstr(request.form(.....ประเภท......))
a2 = cstr(request.form(......ยี่ห้อ.......))
a3= cdate(request.form(.........จากวันที่........))
a4 = cdate(request.form(.......ถึงวันที่........))
a5 = cdbl(request.form(..........จากราคา.....))
a6 = cdbl(request.form(........ถึงราคา........))
'******************* กรณีมีครบทุกเงื่อนไข...................
sql ="SELECT * FROM ตาราง " & _
"WHERE (([ประเภทรถ] ='" & a1 & "') AND ([ยี่ห้อ] = '" & a2 & "') AND ([วันที่] between #" & a3 & "# and #" & a4 & "#) AND ([ราคา] between " & a5 & " and " & a6 & "))"
'************************ กรณีขาดไปเงื่อนไขใดเงื่อนไขหนึ่ง **********************
function WhereNot(sq)
if instr(1,lcase(sq),"where")>1 then
WhereNot =sq & ") AND ("
else
WhereNot = sq & " WHERE ("
end if
sql = "SELECT * FROM ตาราง"
if not isnull(a1) then sql = WhereNot(sql) & "[ประเภทรถ] ='" & a1 & "'
if not isnull(a2) then sql = WhereNot(sql) & "[ยี่ห้อ] ='" & a2 & "'
if not isnull(a3) then
sql = WhereNot(sql) & [วันที่] between #" & a3 & "# and #"
if a4 <a3 or isnull(a4) then a4=a3
sql = sql & a4 & "#"
end if
if not isnull(a5) then
sql = WhereNot(sql) & [วันที่] between " & a5 & " and "
if a6 <a5 or isnull(a6) then a6=a5
sql = sql & a6 & "#"
end if
if instr(1,lcase(sq),"where")>1 then sql = sql & ")"
'ตรวจสอบดูก่อนว่า sql statement ที่เราต้องการถูกต้องตามไวยากรณ์ของ SQL หรือไม่
response.write "sql = <br>" & vbcrlf & sql
'ถ้าไม่ถูกต้อง ก็กลับไปย้อนดูใหม่ทีละจุด ผมเขียนสดผ่านหน้าเว็บเลยครับ ไม่ได้ทดสอบหรือตรวจทานอีกรอบ
'แต่ถ้าถูกต้องแล้ว ก็เอา statement นี้ไปทำงานได้เลย เช่น
rs.open sql ,conn, 1
|
 |
 |
 |
 |
Date :
18 พ.ค. 2551 09:52:58 |
By :
yeadram |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กรรม ลืม ปิด function
ถ้าจะก็อปปี้ไปลอง อย่าลืมปิดนะครับ
Function WhereNot(sq)
If instr(1,lcase(sq),"where")>1 then
WhereNot =sq & ") AND ("
Else
WhereNot = sq & " WHERE ("
End if
End Function
|
 |
 |
 |
 |
Date :
18 พ.ค. 2551 09:55:16 |
By :
yeadram |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาใหม่ดีกว่า
Dim sql
Dim a1, a2, a3, a4, a5, a6
a1 = cstr(request.form(.....ประเภท......))
a2 = cstr(request.form(......ยี่ห้อ.......))
a3= cdate(request.form(.........จากวันที่........))
a4 = cdate(request.form(.......ถึงวันที่........))
a5 = cdbl(request.form(..........จากราคา.....))
a6 = cdbl(request.form(........ถึงราคา........))
'******************* กรณีมีครบทุกเงื่อนไข...................
sql ="SELECT * FROM ตาราง " & _
"WHERE (([ประเภทรถ] ='" & a1 & "') AND ([ยี่ห้อ] = '" & a2 & "') AND ([วันที่] between #" & a3 & "# and #" & a4 & "#) AND ([ราคา] between " & a5 & " and " & a6 & "))"
response.write "<br> sql ครบเงื่อนไข = <br>" & vbcrlf & sql
'************************ กรณีขาดไปเงื่อนไขใดเงื่อนไขหนึ่ง **********************
Function WhereNot(sq)
if instr(1,lcase(sq),"where")>1 then
WhereNot =sq & ") AND ("
else
WhereNot = sq & " WHERE ("
end if
End Function
sql = "SELECT * FROM ตาราง"
if not isnull(a1) then sql = WhereNot(sql) & "[ประเภทรถ] ='" & a1 & "'
if not isnull(a2) then sql = WhereNot(sql) & "[ยี่ห้อ] ='" & a2 & "'
if not isnull(a3) then
sql = WhereNot(sql) & [วันที่] between #" & a3 & "# and #"
if a4 <a3 or isnull(a4) then a4=a3
sql = sql & a4 & "#"
end if
if not isnull(a5) then
sql = WhereNot(sql) & [วันที่] between " & a5 & " and "
if a6 <a5 or isnull(a6) then a6=a5
sql = sql & a6
end if
if instr(1,lcase(sq),"where")>1 then sql = sql & ")"
'ตรวจสอบดูก่อนว่า sql statement ที่เราต้องการถูกต้องตามไวยากรณ์ของ SQL หรือไม่
'ลองเปรียบเทียบกับ กรณี มีครบทุกเงื่อนไขก็ได้ครับ วงเล็บ ตัวแปรเครื่องหมายต่างๆ มีครบตามนั้นหรือไม่
response.write "<br>sql = <br>" & vbcrlf & sql
'ถ้าไม่ถูกต้อง ก็กลับไปย้อนดูใหม่ทีละจุด ผมเขียนสดผ่านหน้าเว็บเลยครับ ไม่ได้ทดสอบ
'แต่ถ้าถูกต้องแล้ว ก็เอา statement นี้ไปทำงานได้เลย เช่น
rs.open sql ,conn, 1
|
 |
 |
 |
 |
Date :
18 พ.ค. 2551 10:01:44 |
By :
yeadram |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ของคุณมากคราบจะ
รองดูนะ
|
 |
 |
 |
 |
Date :
18 พ.ค. 2551 15:49:40 |
By :
sandbgb |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|