如何讓access空值變成0?(確切的說是讓access Null值變成0)


方法一 if  IsNull(Me.新_退休費) = True Then Me.新_退休費 = 0

方法二 if Nz(Me.原_退休費) = Me.原_退休費 Then Me.原_退休費 = 0

有些時候,一些初接觸Access的朋友容易犯這樣的錯誤:if  Me.新_退休費 = "" Then Me.新_退休費 = 0 

 

以下是Access幫助中NZ的內容

當 Variant 類型的值為 Null 時,可以使用 Nz 函數返回零、零長度字符串 ("") 或其他指定值。例如,可以使用此函數將 Null 值轉換為其他值,並防止它通過表達式傳播。

語法Nz(variant [, valueifnull ] )

Nz 函數的語法包含以下參數:

參數

說明

variant

必選。數據類型為 Variant 的變量。

valueifnull

可選(除非用於查詢中)。如果 variant 參數為 Null,則此參數是可提供返回值的 Variant 型參數。此參數允許您返回零或零長度字符串以外的值。

注釋 如果在查詢表達式中使用 Nz 函數而不使用 valueifnull 參數,則在包含空值的字段中結果將是零長度字符串。

如果 variant 參數的值為 Null,則 Nz 函數返回數值零或零長度字符串(用在查詢表達式中時始終返回零長度字符串),具體取決於上下文是否對該值應該是數值還是字符串做出了指示。如果包括可選的 valueifnull 參數,則當 variant 參數為 Null 時,Nz 函數將返回該參數指定的值。用在查詢表達式中時,NZ 函數應始終包含 valueifnull 參數。

如果 variant 的值不為 Null,則 Nz 函數將返回 variant 的值。

注解

Nz 函數對於可能包括 Null 值的表達式很有用。要強制表達式計算出非 Null 值(即使它包含 Null 值),請使用 Nz 函數來返回零、零長度字符串或自定義返回值。

例如,當 VariantvarX 為 Null 時,表達式 2 + varX 將始終返回 Null 值。但 2 + Nz(varX) 返回 2。

通常可以使用 Nz 函數作為 IIf 函數的備選方案。例如,在下面的代碼中,為了返回期望的結果,必須使用包括 IIf 函數的兩個表達式。第一個包括 IIf 函數的表達式用於檢查變量的值並在它為 Null 時將其轉換為零。

varTemp = IIf(IsNull(varFreight), 0, varFreight)

varResult = IIf(varTemp > 50, "High", "Low")

在下一個示例中,Nz 函數可與第一個表達式提供相同的功能,並且只需一步而非兩步便可獲得期望的結果。

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

如果為可選的參數 valueifnull 提供一個值,則當 variant 為 Null 時將返回該值。通過包括此可選參數,可以避免使用包含 IIf 函數的表達式。例如,如果 varFreight 的值為 Null,下面的表達式將使用 IIf 函數返回一個字符串。

varResult = IIf(IsNull(varFreight), _

    "No Freight Charge", varFreight)

      

在下一個示例中,Nz 函數的可選參數提供了 varFreight 為 Null 時將返回的字符串。

varResult = Nz(varFreight, "No Freight Charge")

      

示例

 注釋   以下示例演示了此功能在 Visual Basic for Applications (VBA) 模塊中的使用。有關使用 VBA 的詳細信息,請在“搜索”旁邊的下拉列表中選擇“開發人員參考”,然后在搜索框中輸入一個或多個詞條。

下面的示例對窗體上的一個控件進行計算,並根據該控件的值返回兩個字符串之一。如果該控件的值為 Null,該過程將使用 Nz 函數將 Null 值轉換為零長度字符串。

Public Sub CheckValue()

    Dim frm As Form

    Dim ctl As Control

    Dim varResult As Variant

    ' Return Form object variable 

    ' pointing to Orders form.

    Set frm = Forms!Orders

    ' Return Control object variable 

    ' pointing to ShipRegion.

    Set ctl = frm!ShipRegion

    ' Choose result based on value of control.

    varResult = IIf(Nz(ctl.Value) = vbNullString, _

        "No value.", "Value is " & ctl.Value & ".")

    ' Display result.

    MsgBox varResult, vbExclamation

End Sub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM