Hàm Nz

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Bạn có thể dùng hàm Nz để trả về số không, một chuỗi độ dài bằng không (" ") hoặc một giá trị được chỉ định khác khi một Variant là Null. Ví dụ: bạn có thể sử dụng hàm này để chuyển đổi giá trị Null thành giá trị khác và ngăn không cho giá trị đó phát tán qua một biểu thức.

Cú pháp

Nz(variant [, valueifnull ] )

Cú pháp hàm Nz có những đối số sau:

Tham đối Mô tả
variant Bắt buộc. Biến số thuộc kiểu dữ liệu Biến_thể.
valueifnull Tùy chọn (trừ khi được dùng trong truy vấn). Một biến thể cung cấp giá trị được trả về nếu đối số biến thể là Null. Đối số này cho phép bạn trả về một giá trị ngoài số không hoặc một chuỗi có độ dài bằng không.
Lưu ý: Nếu bạn sử dụng hàm Nz trong một biểu thức trong truy vấn mà không sử dụng đối số valueifnull , kết quả sẽ là một chuỗi có độ dài bằng không trong các trường có chứa giá trị null.

Nếu giá trị của đối số variant là Null, hàm Nz trả về số không hoặc chuỗi có độ dài bằng không (luôn trả về chuỗi có độ dài bằng không khi được dùng trong một biểu thức truy vấn), tùy thuộc vào việc ngữ cảnh cho biết giá trị nên là số hay chuỗi. Nếu bao gồm đối số valueifnull tùy chọn, thì hàm Nz sẽ trả về giá trị được xác định bởi đối số đó nếu đối số variant là Null. Khi được sử dụng trong biểu thức truy vấn, hàm NZ phải luôn bao gồm đối số valueifnull ,

Nếu giá trị của variant không phải là Null thì hàm Nz trả về giá trị của variant.

Chú thích

Hàm Nz rất hữu ích đối với các biểu thức có thể bao gồm các giá trị Null . Để buộc biểu thức đánh giá thành giá trị không phải là Null ngay cả khi có chứa giá trị Null , hãy sử dụng hàm Nz để trả về số không, một chuỗi độ dài bằng không hoặc một giá trị trả về tùy chỉnh.

Ví dụ: biểu thức 2 + varX sẽ luôn trả về giá trị Null khi VariantvarX là Null. Tuy nhiên, 2 + Nz(varX) trả về 2.

Bạn có thể thường xuyên dùng hàm Nz để thay thế cho hàm IIf . Ví dụ: trong mã sau đây, cần phải có hai biểu thức bao gồm hàm IIf để trả về kết quả mong muốn. Biểu thức đầu tiên, bao gồm hàm IIf, được sử dụng để kiểm tra giá trị của một biến và chuyển đổi thành số không nếu nó là Null.

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

Trong ví dụ tiếp theo, hàm Nz cung cấp chức năng tương tự như biểu thức đầu tiên và kết quả mong muốn đạt được trong một bước thay vì hai.

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

Nếu bạn cung cấp một giá trị cho đối số tùy chọn valueifnull, giá trị đó sẽ được trả về khi variant là Null. Bằng cách đưa vào đối số tùy chọn này, bạn có thể tránh được việc dùng biểu thức có chứa hàm IIf . Ví dụ, biểu thức sau đây dùng hàm IIf để trả về một chuỗi nếu giá trị của nó varFreight là Null.

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

Trong ví dụ tiếp theo, tham đối tùy chọn được cung cấp cho hàm Nz cung cấp chuỗi được trả về nếu varFreight là Null.

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

Ví dụ về truy vấn

Biểu thức Kết quả
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; Trả về "ID_sản_phẩm" trong cột Expr1, đánh giá các giá trị 'Null' trong trường "Chiết khấu" và trả về "Không có Chi tiết Sẵn dùng" cho tất cả các giá trị Null (trả về các giá trị không phải là nguyên trạng).
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; Trả về "ID_sản_phẩm" trong cột Sản phẩm, đánh giá các giá trị 'Null' trong trường "Chiết khấu" và trả về "Không có sẵn Chi tiết" cho tất cả các giá trị Null (trả về các giá trị không phải là null nguyên trạng) và hiển thị trong cột ReplaceNull.

Ví dụ về VBA

Lưu ý

Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Ví dụ sau đây đánh giá một điều khiển trên biểu mẫu và trả về một trong hai chuỗi dựa trên giá trị của điều khiển đó. Nếu giá trị của điều khiển là Null, quy trình sẽ dùng hàm Nz để chuyển đổi một giá trị Null thành một chuỗi có độ dài bằng không.

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