Thứ Ba, 21 tháng 6, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 4 - Xử lý trường để trống null trong biểu thức

James Perry, Richard Newmark


Chương 4
Tạo và dùng câu truy vấn


Xử lý trường để trống null trong biểu thức


Khi bạn dùng các hàm toán học để tính toán, vấn đề có thể phát sinh khi một hay nhiều trường bảng, dùng trong biểu thức, không chứa giá trị. Khi một trường để trống, bạn nói rằng nó bằng null. Giá trị null trong tính toán sẽ trả về giá trị trống, không phải số không. Chẳng hạn, nếu một hay nhiều trường UnitPrice của một hóa đơn cụ thể để trống – chứa null – thì kết quả tính giá thành ExtendedPrice cũng bằng trống. Có thể hay hơn nếu hiển thị số không trong biểu thức có giá trị trống. Bạn có thể trải nghiệm điều này bằng cách làm Thử nghiệm sau.

THỬ NGHIỆM

Mở câu truy vấn MyExtendedPrice ở góc nhìn Datasheet. Kéo chuột qua giá trị UnitPrice $3.90 ở dòng đầu – dòng ứng với InvoiceID 214010 và giá trị InventoryID 1195. Nhấn phím Delete để thay giá trị đó bằng giá trị rỗng. Cập nhật dòng bằng cách kích bất kỳ nơi nào trong dòng thứ hai. Bây giờ quan sát ô ExtendedPrice ở dòng đầu. Nó cũng trống. Kích nút Undo ở thanh công cụ truy xuất nhanh Quick Access Toolbar để hồi phục giá trị UnitPrice về giá trị ban đầu. Giá trị ExtendedPrice tái xuất hiện là $66.30. Đóng câu truy vấn.

Hàm Nz sẽ cho kết quả 0 bất kỳ khi nào giá trị tham biến đầu là null. Dạng của hàm là

Nz(biểu-thức, giá-trị-nếu-null)

Tham biến đầu, biểu-thức, là giá trị bạn muốn kiểm tra có bằng null hay không. Nếu bằng null thì tham biến thứ hai, giá-trị-nếu-null, là kết quả trả về. Trái lại, biểu thức ở tham biến đầu được tính và trả về. Bạn sẽ không được yêu cầu sửa câu truy vấn MyExtendedPrice, nhưng sau đây là biểu thức điều chỉnh để cho giá trị 0 nếu biểu thức cho ra giá trị null do UnitPrice để trống:

ExtendedPrice: Nz(Round([Quantity]*[tblInvoiceLine]![UnitPrice]*(1-[Discount]),2),0)

Tức đặt toàn bộ biểu thức vào trong hàm Nz làm tham biến đầu, gõ dấu phẩy, số 0, rồi đóng ngoặc.

Không có nhận xét nào:

Đăng nhận xét