6

我需要使用我已成功完成多次的查询技术从我的数据库中创建一个带有查询数据的选择框。但是,今天当我创建新的选择框时,页面一直告诉我有错误“ADODB.Fields error '800a0cc1' Item can be found in the collection ....”。

起初我以为是我的 SQL 查询导致了这个错误,但是我已经在 ACCES 上测试了它,它可以产生我预期的输出。所以现在我被困住了..我不知道我的编码发生了什么。

所以请帮我解决这个问题。。谢谢。下面是我的代码

user_id = 1
client_id = 7
response.Write "user_id = " & user_id

Dim rsClient
set rsClient = Server.CreateObject("ADODB.Recordset")
rsClient.ActiveConnection = Conn_string
rsClient.Source ="SELECT tbl_asgnClient.* , tbl_client.* FROM tbl_asgnClient INNER JOIN tbl_client ON tbl_asgnClient.client_id = tbl_client.client_id WHERE tbl_asgnClient.user_id =" & user_id & ""
rsClient.CursorType = 0
rsClient.CursorLocation = 3
rsClient.LockType = 3
rsClient.Open()
rsClient.PageSize = 20
%>
<html>
<body>
<select name = "client_id" onChange="showActivity(this.value)">
    <option selected>select client</option>
<%
        if rsClient.eof then 
            call displayNotFoundRecord
        Else
            Do Until  rsClient.Eof
%>                                                          
        <option  value="<%=rsClient.fields.item("client_id")%>"><%=rsClient.fields.item("client_id")%></option>                                                          
<%      
                rsClient.movenext
                Loop
        End if                                              
%>
  </select>   

我可以确保除了 SQL 之外没有其他东西会导致此错误。因为我尝试使用以下查询更改它 SQL 并且它工作得很好。

rsClient.Source ="SELECT tbl_asgnClient.* FROM tbl_asgnClient WHERE tbl_asgnClient.user_id =" & user_id & " "

或这个 ...

rsClient.Source ="SELECT tbl_client.* FROM tbl_client  "

我还确保我当前使用的一次能够在 MS ACCESS 中产生输出。所以请帮帮我..

4

1 回答 1

9

您的 SQL 有两个同名的列 - 虽然值相同,但 ADO 不知道您想要哪个字段

于 2012-08-20T09:15:51.623 回答