Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

バリアントが Null の場合に、0、長さ 0 の文字列 (" ")、または指定された別の値を返すには、Nz 関数を使うことができます。 たとえば、この関数を使って Null 値を別の値に変換し、式を通じて Null 値が広まらないようにすることができます。

構文

Nz ( variant [, valueifnull ] )

Nz 関数の構文には、次の引数があります。

引数

説明

variant

必須。 データ型 Variant の変数です。

valueifnull

オプション (クエリで使用されている場合を除く)。 variant 引数が NULL の場合に返す値を提供する Variant です。 この引数を使用すると、0 または長さが 0 の文字列以外の値を返すことができます。

注: 引数 valueifnull を使用せずに、クエリの式で Nz 関数を使用すると、NULL 値を含むフィールドは長さが 0 の文字列になります。

variant 引数の値が Null の場合、Nz 関数は、コンテキストによって値が数値か文字列かを判断し、それによって数値の 0 または長さ 0 の文字列 (クエリの式で使われている場合は、常に長さ 0 の文字列) を返します。 オプションの valueifnull 引数が指定されており、variant 引数が Null である場合、Nz 関数は valueifnull 引数で指定された値を返します。 クエリの式で使う場合、NZ 関数には常に valueifnull 引数を指定する必要があります。

variant の値が Null でない場合、Nz 関数は variant の値を返します。

説明

Null 値が含まれる可能性がある式では、Nz 関数が役立ちます。 Null 値が含まれていても、式によって Null 以外の値が返されるようにするには、Nz 関数を使って、0、長さ 0 の文字列、またはカスタムの戻り値を返すことができます。

たとえば、式 2 + varX では variantvarXNull の場合、常に Null 値が返されます。 しかし、2 + Nz(varX) では 2 が返されます。

Nz 関数は、IIf 関数の代わりに使えることがよくあります。 たとえば、次のコードでは、目的の結果を返すために、IIf 関数を含む式が 2 つ必要になります。 IIf 関数を含む最初の式を使って変数の値を確認し、それが Null の場合 0 に変換します。

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

次の例では、Nz 関数は最初の式と同じ機能を実行しますが、目的の結果を 2 ステップではなく 1 ステップで達成できます。

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

オプションの引数 valueifnull に値を指定すると、variantNull の場合、この指定した値が返されます。 このオプションの引数を指定することで、IIf 関数を指定する式を使わなくて済みます。 たとえば、次の式では、IIf 関数を使って varFreight の値が Null の場合に文字列を返します。

varResult = IIf(IsNull(varFreight), _    "No Freight Charge", varFreight)

次の例では、Nz 関数に指定されたオプションの引数に、varFreightNull の場合に返される文字列を指定しています。

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

クエリの例

結果

SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales;

列 Expr1 で "ProductID" を返し、フィールド "Discount" の 'Null' 値を評価し、すべての Null 値に対して "詳細なし" を返します (null 以外の値をそのまま返します)。

SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales;

列 Product で "ProductID" を返し、フィールド "Discount" の 'Null' 値を評価し、すべての Null 値に対して "No Details Available" (Null 以外の値をそのまま返す) を返し、列 ReplaceNull に表示します。

VBA の例

注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

次の例では、フォーム上のコントロールが評価され、コントロールの値に基づいて 2 つの文字列のどちらかが返されます。 コントロールの値が Null の場合、Nz 関数により、Null 値は長さ 0 の文字列に変換されます。

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, vbExclamationEnd Sub

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。