ADODB.Fields错误'800a0cc1'项目在集合中找不到

时间:2012-08-20 09:12:10

标签: sql asp-classic ms-access-2007

我需要使用我多次成功完成的查询技术,从我的数据库创建一个包含查询数据的选择框。但是,今天当我创建新的选择框时,页面一直告诉我错误“ADODB.Fields错误'800a0cc1'项目在集合中找不到......”。

起初我认为这是我的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中产生输出。所以请帮助我..

1 个答案:

答案 0 :(得分:9)

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