0

データベースにはNull値を持つレコードがいくつかあるため、このコードは、「rsActQty」または「rsSumQty」に値が割り当てられていないレコードセットをフィルタリングするために作成されていました。しかし、何を試しても、このコードはNull値を検出できないようでした。そして、私は何を間違えたのかわかりません。それで、私にいくつかの提案をお願いしますか?ありがとうございました。(このデータベースはMSACCESSにありました)

私が欲しいのは:-「rsActQty」または「rsSumQty」のいずれかに値を持つレコードのみを表示することです。-このフィールドの1つがNULLの場合、「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()
%>
4

2 に答える 2

2

isNull 関数を使用してみてください。例えば

if not isNull(rs.fields.item("sumOfinv_qty_act")) then 
    ActQty = rs.fields.item("sumOfinv_qty_act")
else
    ActQty = 0
end if
于 2012-10-08T09:49:37.323 に答える
1

Null は空白値と同じではありません。

null を文字列に強制して、比較を行うことができます。

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

次のように、SQL クエリで null を処理することもできます。

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

null 値の場合は 0 を返します。

于 2012-10-08T10:02:21.313 に答える