日期:2014-05-16  浏览次数:20829 次

在asp网页中查询access数据库的两个表,网页中显示的为何只能是同名字段的数据内容,不同名的字段不能显示,提示"在对应所需名称或序数的集合中,未找到项目"
在asp网页中查询access数据库的两个表,网页中显示的为何只能是同名字段的数据内容,不同名的字段不能显示,提示"在对应所需名称或序数的集合中,未找到项目"。

jia表内有5条数据
字段:id,tong,bs,a2,a3

yi表内有5条数据
字段:id,tong,bs,b2,b3

说明:两表有关联的字段为tong;同名的字段为:id,bs; 不同名的字段为:jia表a2,a2 和 yi表b2,b3

目标:用sql语句查询,左外连接查询,能同时显示jia表和yi表的所有字段中的数据。
使用的网页语句如下(shiyan.asp):
<%
Set rstObj = Server.CreateObject ("ADODB.Recordset")
strSQL="SELECT jia.*, yi.* FROM jia left OUTER JOIN yi ON jia.tong=yi.tong"
rstObj.Open strSQL,conn,1
%>
<%
For i = 1 to rstobj.RecordCount 
%>
<%=rstObj("jia.id")%>正确显示
<%=rstObj("jia.bs")%>正确显示
<%=rstObj("jia.a2")%>此字段显示出错
<%=rstObj("jia.a3")%>此字段显示出错
<%=rstObj("yi.id")%>正确显示
<%=rstObj("yi.bs")%>正确显示
<%=rstObj("yi.b2")%>此字段显示出错
<%=rstObj("yi.b3")%>此字段显示出错
<%rstObj.MoveNext
Next
%> 

难点是:网页中能正确显示<%=rstObj("jia.id")%><%=rstObj("jia.bs")%>这两个同名字段;但是只要加入<%=rstObj("jia.a2")%><%=rstObj("jia.a3")%>则不能正确显示了。即:在asp网页中查询access数据库的两个表,网页中显示的只能是同名字段的数据内容,不同名的字段不能显示,提示"在对应所需名称或序数的集合中,未找到项目"。
   
 补充:把语句改为如下 strSQL="SELECT *,jia.a2 as a2 FROM jia left OUTER JOIN yi ON jia.tong=yi.tong" ;即取个别名a2,然后这样<%=rstObj("a2")%> 就可以显示了。问题是:如果我这个表中有100个字段,难道要取100个别名?有没有不需要取别名的方法呢?  
------解决方案--------------------
字段名不同不用加前缀。。

<%=rstObj("jia.id")%><br />
<%=rstObj("jia.bs")%><br />
<%=rstObj("a2")%><br />
<%=rstObj("a3")%><br />
<%=rstObj("yi.id")%><br />
<%=rstObj("yi.bs")%><br />
<%=rstObj("b2")%><br />
<%=rstObj("b3")%>