? 發問時間: 電腦與網際網路程式設計 · 2 0 年前

請幫我看程式碼哪裡有問題(贈20點)

<%

a = Request("T1")

b = Request("D2")

%>

<%

Set cnDOG = Server.CreateObject("ADODB.Connection")

strCon = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("DOG.mdb")

cnDOG.Open strCon

Set rs = Server.CreateObject("ADODB.Recordset")

If a <> "" And b <> "請選擇" then

sql = "select distinct * from dog where 犬名 like '%"&a&"%' and 原產地 like '%"&b&"%'"

ElseIf a <> "" And b <> "請選擇" then

sql = "select distinct * from dog where 犬名 like '%"&a&"%'"

ElseIf a <> "" And b = "請選擇" then

sql = "select distinct * from dog where 原產地 like '%"&b&"%'"

End If

rs.Open cnDOG, strCon, 3, 2

%>

<%

rs.MoveFirst

do while Not rs.eof

%>

<%

rs.MoveNext

loop

rs.Close

cnnDB.Close

%>

---------------------------------------------------------------------------------------------

不論怎麼改

出不來就是出不來

想請各位高手幫我看看哪裡出問題了

感激不盡

已更新項目:

我是要從ACCESS資料庫抓資料

依使用者在INDEX所選擇的項目來抓

希望大家懂我的意思

2 個已更新項目:

我是要從ACCESS資料庫抓資料

依使用者在INDEX所選擇的項目來抓

希望大家懂我的意思

3 個已更新項目:

錯誤類型:

ADODB.Recordset (0x800A0BB9)

引數中可能發生類型錯誤、超過可接受的定義範圍、或與其他引數發生衝突。

----------

它會出現上面這個錯誤類型

唉~~~我真的不懂ㄋㄟ

4 個已更新項目:

我後來訂正了

Set cnDOG = Server.CreateObject("ADODB.Connection")

strCon = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("DOG.mdb")

cnDOG.Open strCon

5 個已更新項目:

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open sql, cnDOG, 3, 3

但是錯誤類型還是一樣耶

ADODB.Recordset (0x800A0BB9)

引數中可能發生類型錯誤、超過可接受的定義範圍、或與其他引數發生衝突。

6 個已更新項目:

終於是可以跑出來了

但是他對在TEXT打字查詢沒有反應

而且只要有一筆以上的資料

它排序就會亂掉.....這到底該怎辦勒

2 個解答

評分
  • Jay
    Lv 5
    2 0 年前
    最佳解答

    rs.Open cnDOG, strCon(?????), 3, 2

    你的SQL 怎麼都沒有用到??

    你的RS 是空白的

    所以你 RS.MOVEFIRST 的時候就錯誤了

    請先

    if not rs.eof then

    rs.MoveFirst

    do while Not rs.eof

    %>

    <%

    rs.MoveNext

    loop

    end if

    排序在SQL裡面排序 用 ORDER BY

    If a <> "" And b <> "請選擇" then

    sql = "select ...........

    ElseIf a <> "" And b <> "請選擇" then <==== 應該試 a = "")

    sql = "select distinct.............

    ElseIf a <> "" And b = "請選擇" then

    sql = "select distinct ................

    End If

  • Tony
    Lv 6
    2 0 年前

    建議你以後發問請列出錯誤訊息

    如果沒有錯誤訊息請善用以下方法來除錯

    response.write

    response.end

    用這兩個方法來判斷中間你是否有邏輯錯誤

還有問題?馬上發問,尋求解答。