2012-10-08 89 views
0

由于在数据库中有一些记录具有空值,因此创建此代码以过滤未在“rsActQty”中指定值的记录集或“rsSumQty”。 但是无论我尝试了什么,看起来这个代码都无法检测到空值。我不知道我做错了什么。那么你能给我一些建议吗?谢谢。 (此数据库在MSACCESS中)我的代码有什么问题?为什么我不能为从数据库检索的数据分配“0”

我想要的是: - 仅显示在“rsActQty”或“rsSumQty”中具有值的记录。 - 当其中一个字段为空时,为其分配“0”。

<% 
if Rs.eof then 
    response.write "<tr><td colspan=""6"">&nbsp;" 
    call displayNotFoundRecord 
    response.write "</td></tr>" 
Else 


Dim ActQty, sumQty, Total, rsActQty, rsSumQty, rsPdtn_qty_est, inv_date, res_date 
    Do while Rs.AbsolutePage = strPageCurrent And Not Rs.EOF 

     inv_id = rs.fields.item("inv_idRS") 
     rsActQty = rs.fields.item("sumOfinv_qty_act") 
     rsSumQty = rs.fields.item("SumOfres_qty") 
     rsPdtn_qty_est = rs.fields.item("SumOfpdtn_qty_est") 
     inv_date = rs.fields.item("inv_dateRS") 
     res_date = rs.fields.item("res_dateRS") 

      if rsActQty = "" then 
       ActQty = 0 
      else 
       ActQty = rsActQty 
      end if 

      if rsSumQty = "" then 
       sumQty = 0 
      else 
       sumQty = rsSumQty 
      end if 


     if rsActQty <> "" OR rsSumQty <> "" then 

       if inv_date = "" then 
        dateshow = res_date 
       else 
        dateshow = inv_date 
       end if 

       if res_date = "" then 
        dateshow = res_date 
       else 
        dateshow = res_date 
       end if 

       total = rs.fields.item("Total") 
%> 

<tr class='difcursor'> 
<td class="btline" width="25" align="center"><input type="checkbox" name="inv_id" value="<%=inv_id%>" onClick="highlightRow(this,'#FFFFCC','#EFF4FA');"></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=rs.fields.item("pd_id")%> </td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=rs.fields.item("pd_name")%></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=PcsToDz(ActQty)%></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%'=PcsToDz(rs.fields.item("SumOfpdtn_qty_est"))%></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=dateshow%></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=PcsToDz(sumQty)%></td> 
<td class="btline" <%=genLink(inv_id)%> nowrap style="padding-right: 10px">&nbsp;<%=PcsTODz(Total)%></td> 
<td class="btline"></td> 
</tr> 

<% 
     end if 

     Rs.movenext 
    Loop 
End if 
Rs.close 
set Rs=nothing 
Call DBConnClose() 
%> 
+0

林不知道这个语法是否正确..你有没有试过这段代码? '如果Len(Me.rsActQty&vbNullString)然后' – Chuki2

回答

2

尝试使用isNull函数。 例如

if not isNull(rs.fields.item("sumOfinv_qty_act")) then 
    ActQty = rs.fields.item("sumOfinv_qty_act") 
else 
    ActQty = 0 
end if 
+0

非常感谢。 – Alxan

1

Null与空白值不相同。

你可以尝试迫使空为字符串,并做了比较:

rsActQty = "" & rs.fields.item("sumOfinv_qty_act") 
    rsSumQty = "" & rs.fields.item("SumOfres_qty") 

,你也可以处理空在SQL查询,如:

select iif(isnull(fieldname),0,fieldname) as fieldname from table 

这将为返回一个0空值。

相关问题