Hallo, Christoph,
Post by Christoph NattererIch wende zwar in meinen Makros die Nz funktion an und sehe auch das
Ergebnis, was den meisten ja genügen wird. Ich würde jedoch gerne wissen was
sie genau bedeutet und was sie genau macht. Was steckt genau dahinter?
hast Du denn auch mal in die Online-Hilfe geschaut?
Bei mir steht da:
<OH EN>
Nz Function
See AlsoApplies ToExampleSpecificsYou can use the Nz function to
return zero, a zero-length string (" "), or another specified value
when a Variant is Null. For example, you can use this function to
convert a Null value to another value and prevent it from propagating
through an expression.
Nz(variant, [valueifnull])
The Nz function has the following arguments.
Argument Description
variant A variable of data type Variant.
valueifnull Optional (unless used in a query). A Variant that supplies
a value to be returned if the variant argument is Null. This argument
enables you to return a value other than zero or a zero-length string.
Note If you use the Nz function in an expression in a query without
using the valueifnull argument, the results will be a zero-length
string in the fields that contain null values.
If the value of the variant argument is Null, the Nz function returns
the number zero or a zero-length string (always returns a zero-length
string when used in a query expression), depending on whether the
context indicates the value should be a number or a string. If the
optional valueifnull argument is included, then the Nz function will
return the value specified by that argument if the variant argument is
Null. When used in a query expression, the NZ function should always
include the valueifnull argument,
If the value of variant isn't Null, then the Nz function returns the
value of variant.
Remarks
The Nz function is useful for expressions that may include Null
values. To force an expression to evaluate to a non-Null value even
when it contains a Null value, use the Nz function to return zero, a
zero-length string, or a custom return value.
For example, the expression 2 + varX will always return a Null value
when the Variant varX is Null. However, 2 + Nz(varX) returns 2.
You can often use the Nz function as an alternative to the IIf
function. For example, in the following code, two expressions
including the IIf function are necessary to return the desired result.
The first expression including the IIf function is used to check the
value of a variable and convert it to zero if it is Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
In the next example, the Nz function provides the same functionality
as the first expression, and the desired result is achieved in one
step rather than two.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
If you supply a value for the optional argument valueifnull, that
value will be returned when variant is Null. By including this
optional argument, you may be able to avoid the use of an expression
containing the IIf function. For example, the following expression
uses the IIf function to return a string if the value of varFreight is
Null.
varResult = IIf(IsNull(varFreight), "No Freight Charge", varFreight)
In the next example, the optional argument supplied to the Nz function
provides the string to be returned if varFreight is Null.
varResult = Nz(varFreight, "No Freight Charge")
Example
The following example evaluates a control on a form and returns one of
two strings based on the control's value. If the value of the control
is Null, the procedure uses the Nz function to convert a Null value to
a zero-length string.
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
</OH EN>
Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm
Bitte keine eMails auf Newsgroup-Beiträge senden.