Partage via


méthode Application.Nz (Access)

Utilisez la fonction Nz pour retourner zéro (0), une chaîne de longueur nulle («  ») ou une autre valeur spécifiée lorsqu’un Variant a la valeur Null. Par exemple, vous pouvez utiliser cette fonction pour convertir une valeur Null en une autre valeur et l’empêcher de se propager dans une expression.

Syntaxe

expression. Nz (Value, ValueIfNull)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
Valeur Obligatoire Variant Variable de type de données Variant.
ValueIfNull Facultatif Variant Optional. Élément de type Variant qui fournit une valeur à renvoyer si l’argument de type Variant est Null. Cet argument vous permet de renvoyer une valeur différente de zéro ou une chaîne nulle.

REMARQUE : Si vous utilisez la fonction Nz dans une expression d’une requête sans utiliser l’argument ValueIfNull , les résultats sont une chaîne de longueur nulle dans les champs qui contiennent des valeurs Null .

Valeur renvoyée

Variant

Remarques

Si la valeur de l’argument variant est Null, la fonction Nz retourne un Variant non attribué, la valeur spéciale Empty. Dans VBA, lorsqu’il est évalué, Empty entraîne le nombre zéro ou une chaîne de longueur nulle, selon que le contexte indique que la valeur doit être un nombre ou une chaîne. Par exemple :

Nz(Null) + 2    ' returns 2
Nz(Null) & 2    ' returns "2"
Nz(Null) + "2"  ' returns "2"
Nz(Null) & "2"  ' returns "2"

Lorsqu’il est utilisé dans une expression de requête, Nz retourne des valeurs de résultat similaires.

Si l’argument facultatif ValueIfNull est inclus, la fonction Nz retourne la valeur spécifiée par cet argument si l’argument variant a la valeur Null.

Si la valeur de Variant n’est pas Null, la fonction Nz retourne la valeur de Variant.

La fonction Nz est utile dans le cadre des expressions qui peuvent comprendre des valeurs Null. Pour qu’une expression soit évaluée comme une valeur non Null même si elle inclut une valeur Null, utilisez la fonction Nz pour retourner zéro, une chaîne de longueur nulle ou une valeur de retour personnalisée.

Par exemple, l’expression 2 + varX retourne toujours une valeur Null lorsque le VariantvarX a la valeur Null. Toutefois, 2 + Nz(varX) renvoie la valeur 2.

Vous pouvez souvent utiliser la fonction Nz comme alternative à la fonction IIf . Par exemple, dans le code suivant, il faut deux expressions incluant la fonction IIf pour retourner le résultat souhaité. La première expression qui contient la fonction IIf sert à contrôler la valeur d’une variable et à la convertir en zéro si elle est Null.

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

Dans l’exemple suivant, la fonction Nz fournit la même fonctionnalité que la première expression, et le résultat souhaité est obtenu en une ligne au lieu de deux.

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

Si vous fournissez une valeur pour l’argument facultatif ValueIfNull, cette valeur est retournée lorsque Value a la valeur Null. Vous pouvez éviter d’utiliser une expression contenant la fonction IIf en incluant cet argument facultatif. Par exemple, l’expression suivante utilise la fonction IIf pour renvoyer une chaîne si varFreight a pour valeur Null.

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

Dans l’exemple suivant, l’argument facultatif fourni à la fonction Nz fournit la chaîne à retourner si varFreight a la valeur Null.

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

Exemple

L’exemple suivant évalue un contrôle sur un formulaire et renvoie l’une des deux chaînes en fonction de la valeur du contrôle. Si la valeur du contrôle est Null, la procédure utilise la fonction IsNull pour sélectionner le message, puis la fonction Nz pour remplacer une valeur Null par un message.

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 using IsNull.
    varResult = IIf(IsNull(ctl.Value), _ 
        "No value.", "Value is " & ctl.Value & ".") 
 
    ' Display result using IsNull. 
    MsgBox varResult, vbExclamation, "Using IsNull" 

    ' Choose result based on value of control using Nz. 
    ' "Value is" + Str(Null) evaluates to Null.
    varResult = Nz("Value is" + Str(ctl.Value), "No value") & ".") 
 
    ' Display result using Nz. 
    MsgBox varResult, vbExclamation, "Using Nz"
 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.