Trả về một trong hai phần, tùy thuộc vào kết quả đánh giá một biểu thức.
Bạn có thể sử dụng bất IIf kỳ nơi nào mà bạn có thể sử dụng biểu thức. Dùng IIf để xác định xem một biểu thức khác đúng hay sai. Nếu biểu thức là true, trả IIf về một giá trị. Nếu sai, trả IIf về giá trị khác. Bạn xác định các giá trị trả IIf về.
Cú pháp
IIf(expr, truepart, falsepart)
Cú IIf pháp hàm có các đối số sau:
| Đối số | Mô tả |
|---|---|
expr |
Bắt buộc. Biểu thức mà bạn muốn đánh giá. |
truepart |
Bắt buộc. Giá trị hoặc biểu thức được trả về nếu expr là True. |
falsepart |
Bắt buộc. Giá trị hoặc biểu thức được trả về nếu expr là False. |
Chú thích
IIf Luôn đánh giá cả hai truepart và , falsepartmặc dù nó chỉ trả về một trong hai hàm này. Do hành vi này, hãy theo dõi các hiệu ứng phụ không mong muốn. Ví dụ, nếu đánh giá falsepart kết quả trong lỗi chia theo không, thì lỗi xuất hiện ngay cả khi expr là .True
Ví dụ
Sử dụng IIf trên một biểu mẫu hoặc báo cáo
Giả sử rằng bạn có một Customers bảng chứa một trường có tên là CountryRegion. Trong một biểu mẫu, bạn muốn hiển thị liệu tiếng Italy có phải là ngôn ngữ chính của liên hệ không. Bạn có thể thêm điều khiển và sử dụng IIf trong thuộc tính của điều khiển đó Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Khi bạn mở biểu mẫu trong Dạng xem biểu mẫu, điều khiển sẽ hiển thị Italian mỗi khi giá trị for là CountryRegionItaly. Nó hiển thị Some other language bất cứ khi nào CountryRegion có bất kỳ giá trị nào khác.
Sử dụng IIf trong các biểu thức phức tạp
Bạn có thể sử dụng bất kỳ biểu thức nào trong bất kỳ phần nào của câu IIf lệnh. Bạn cũng có thể lồng IIf biểu thức để đánh giá một loạt các biểu thức biểu độc lập. Để tiếp tục với ví dụ trên, bạn có thể muốn kiểm tra một vài giá trị khác nhau CountryRegion , rồi hiển thị ngôn ngữ thích hợp dựa trên giá trị đó:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Văn bản Some other language là đối falsepart số của hàm trong cùng IIf . Vì mỗi hàm được lồng là IIf đối falsepart số của IIf hàm chứa nó, văn bản Some other language được trả về chỉ khi tất cả các expr đối số của các IIf hàm đánh giá là .False
Ví dụ khác, giả sử bạn làm việc ở thư viện. Cơ sở dữ liệu thư viện có một bảng được đặt tên có Check Outs chứa một trường được đặt tên là Due Date, có chứa ngày mà một cuốn sách cụ thể đến hạn phải trả lại. Bạn có thể tạo một biểu mẫu hiển thị trạng thái của một mục được kiểm xuất trong một điều khiển bằng cách sử dụng IIf hàm trong thuộc tính của điều Control Source khiển đó:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Khi bạn mở biểu mẫu trong Dạng xem biểu mẫu, điều khiển sẽ hiển thị nếu OVERDUE giá trị của nó Due Date nhỏ hơn ngày hiện tại, nếu Due today nó bằng với ngày hiện tại, và Not Yet Due nếu khác.
Lưu ý
Để sử dụng các toán tử lô-gic như And hoặc trong Or tham expr đối của IIf hàm, bạn phải đặt biểu thức lô-gic trong hàm Eval . Xem bảng ví dụ sau đây.
Sử dụng IIf trong truy vấn
Hàm này IIf thường được sử dụng để tạo ra các trường được tính toán trong các truy vấn. Cú pháp cũng giống như vậy, ngoại trừ việc trong một truy vấn, bạn phải bắt đầu biểu thức bằng một biệt danh trường và dấu hai chấm (:) thay vì dấu bằng ().= Để sử dụng ví dụ trước đó, hãy nhập nội dung sau vào hàng Trường của lưới thiết kế truy vấn:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
Trong trường hợp này, là Language: bí danh trường.
Để biết thêm thông tin về việc tạo truy vấn và các trường được tính toán, hãy xem mục Tạo truy vấn chọn đơn giản.
Sử dụng IIf trong mã VBA
Lưu ý
Các ví dụ sau đây trình bày 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ụ này dùng IIf hàm để đánh giá tham TestMe số của CheckIt thủ tục và trả về từ nếu Large số tiền lớn hơn 1000. Nếu không, nó trả về từ .Small
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Các ví dụ khác
Biểu thức:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Kết quả: Nếu
[AirportCode]là ,"ORD"trả về"Chicago". Nếu không, nếu[AirportCode]là ,"ATL"trả về"Atlanta". Nếu không, nếu[AirportCode]là ,"SEA"trả về"Seattle". Nếu không, hãy trả về ."Other"Biểu thức:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Kết quả: Nếu
[ShipDate]sớm hơn ngày hôm nay, trả về"Shipped". Nếu không, nếu bằng[ShipDate]ngày hôm nay, trả về"Shipping today". Nếu không, hãy trả về ."Unshipped"Biểu thức:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Kết quả: Nếu
[PurchaseDate]sớm hơn1/1/2008, trả về"Old". Nếu không, hãy trả về ."New"Biểu thức:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Kết quả: Nếu
[Volts]nằm giữa 12 và 15 và nằm[Amps]giữa 0,25 và 0,3, trả về"OK". Nếu không, hãy trả về ."Out of calibration"Biểu thức:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Kết quả: Nếu là , , hoặc
"Mexico", trả về"North America"."USA""Canada"[CountryRegion]Nếu không, hãy trả về ."Other"Biểu thức:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Kết quả: Nếu
[Average]là 90 hoặc lớn hơn, trả về"A". Nếu không, nếu[Average]là 80 hoặc lớn hơn, trả về"B". Nếu không, nếu[Average]là 70 hoặc lớn hơn, trả về"C". Nếu không, nếu[Average]là 60 hoặc lớn hơn, trả về"D". Nếu không, hãy trả về ."F"
Lưu ý
Nếu bạn đang sử dụng hàm để IIf tạo một trường được tính toán trong một truy vấn, hãy thay dấu bằng (=) bằng biệt danh trường và dấu hai chấm (:). Ví dụ: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).