Ms access asp在未找到请求的数据时不执行。表单值和粗体在最后一行

Ms access asp在未找到请求的数据时不执行。表单值和粗体在最后一行,ms-access,asp-classic,Ms Access,Asp Classic,我有一个访问查询,如下所示: select column_date, sum(qty1), sum(qty2), sum(qty3) from table1 where column_date = [enter date] group by column_date union all select 'Total' as column_date, sum(qty1), sum(qty2), sum(qty3) from table1 where column_date = [enter date]

我有一个访问查询,如下所示:

select column_date, sum(qty1), sum(qty2), sum(qty3) from table1
where column_date = [enter date]
group by column_date
union all
select 'Total' as column_date, sum(qty1), sum(qty2), sum(qty3) from table1
where column_date = [enter date]
<%
Dim enterdate = Request.Form("enterdate")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="abovequery '" & enterdate & "' "
rs.Open sql, conn
%>
<table border="1" width="100%">
<%If rs.EOF then
Response.write ("<center>" & "<b>" & "There is no records for 
the selected dates" & "</b>" & "</center>")%>
<%Else%>
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do while not rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
 rs.MoveNext%>
</tr>
<%loop%>
<%End if%>
<%rs.close
conn.close%>
现在我有如下asp代码:

select column_date, sum(qty1), sum(qty2), sum(qty3) from table1
where column_date = [enter date]
group by column_date
union all
select 'Total' as column_date, sum(qty1), sum(qty2), sum(qty3) from table1
where column_date = [enter date]
<%
Dim enterdate = Request.Form("enterdate")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "odbcdatasourcename"
set rs = Server.CreateObject("ADODB.recordset")
sql="abovequery '" & enterdate & "' "
rs.Open sql, conn
%>
<table border="1" width="100%">
<%If rs.EOF then
Response.write ("<center>" & "<b>" & "There is no records for 
the selected dates" & "</b>" & "</center>")%>
<%Else%>
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do while not rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
 rs.MoveNext%>
</tr>
<%loop%>
<%End if%>
<%rs.close
conn.close%>

正如您所看到的,当所选日期没有数据时,我写的应该显示消息“所选日期没有记录”。 但是,每当没有记录时,它仍然只显示最后一行的“总计”,即第二次查询的空白值。有可能把它修好吗


当数据库中有选定日期的记录时,我想将最后一行(即总行)设为“粗体”。这里也可以吗?提前感谢

您有两个查询,应该按此方式运行它们,首先是查询以获取数据,然后是查询以获取总数。当前的查询将始终返回一行,其中Total作为日期

即使桌子完全空了,这也是事实。您可以通过创建一个表来检查这一点,该表只有一个名为ID的列,没有行

SELECT ID,ID As ASum
FROM EmptyTable
UNION
SELECT "Total" As ID, Sum(ID)
FROM EmptyTable

它将返回一行。

谢谢Remou…我明白了…但是有什么解决办法吗?是否可以使用asp代码而不是使用查询来创建列合计?只需运行两个查询并使用GetRows()或GetString()来存储值。这将解决您的突出问题,并允许您非常快速地进出MS Access,这对于web+访问始终是一个好主意。我所说的两个查询是指获取数据的查询和获取总数的查询。不要使用union将总计添加到结果中。现在它显示了我页面中的所有行,但我仍然不确定如何才能将最后一行加粗?我不能给出精确的行和列引用,因为每次行数可能会改变,从而创建两个查询。循环遍历数据或使用get rows创建表。然后写出总行数。