ฟังก์ชัน IIf

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

ส่งกลับหนึ่งในสองส่วน โดยขึ้นอยู่กับการประเมินผลของนิพจน์

คุณสามารถใช้ IIf ที่ใดก็ได้ที่คุณสามารถใช้นิพจน์ได้ ใช้ IIf เพื่อกําหนดว่านิพจน์อื่นเป็นจริงหรือเท็จ ถ้านิพจน์เป็นจริง จะ IIf ส่งกลับหนึ่งค่า ถ้าเป็นเท็จ จะ IIf ส่งกลับค่าอื่น คุณระบุค่าที่ IIf ส่งกลับ

ดูตัวอย่างบางส่วน

ไวยากรณ์

IIf(expr, truepart, falsepart)

IIfไวยากรณ์ของฟังก์ชันมีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์ คำอธิบาย
expr จำเป็น นิพจน์ที่คุณต้องการประเมิน
truepart จำเป็น ค่าหรือนิพจน์ที่ส่งกลับ ถ้า expr เป็นTrue
falsepart จำเป็น ค่าหรือนิพจน์ที่ส่งกลับ ถ้า expr เป็นFalse

ข้อสังเกต

IIf ประเมินทั้ง truepart และ falsepartเสมอ แม้ว่าฟังก์ชันจะส่งกลับค่าเพียงรายการเดียวก็ตาม เนื่องจากพฤติกรรมนี้ดูผลข้างเคียงที่ไม่ต้องการ ตัวอย่างเช่น ถ้าการประเมินfalsepartผลลัพธ์เป็นข้อผิดพลาดการหารด้วยศูนย์ จะเกิดข้อผิดพลาดแม้ว่าจะexprเป็นTrue

ตัวอย่าง

ใช้ IIf บนฟอร์มหรือรายงาน

สมมติว่าคุณมี Customers ตารางที่มีฟิลด์ที่ CountryRegionชื่อ ในแบบฟอร์ม คุณต้องการแสดงว่าอิตาลีเป็นภาษาแรกของผู้ติดต่อหรือไม่ คุณสามารถเพิ่มตัวควบคุมและใช้ IIf ในคุณสมบัติได้ Control Source ดังนี้

=IIf([CountryRegion]="Italy", "Italian", "Some other language")

เมื่อคุณเปิดฟอร์มในมุมมองฟอร์ม ตัวควบคุมจะแสดงItalianเมื่อใดก็ตามที่ค่าCountryRegionของ เป็นItaly โดยจะแสดง Some other language เมื่อใดก็ตามที่ CountryRegion มีค่าอื่นๆ

ใช้ IIf ในนิพจน์ที่ซับซ้อน

คุณสามารถใช้นิพจน์ใดก็ได้ในส่วนใดๆ ของ IIf คําสั่ง คุณยังสามารถซ้อน IIf นิพจน์ ซึ่งช่วยให้คุณประเมินชุดของนิพจน์ที่อ้างถึงได้ เมื่อต้องการดําเนินการกับตัวอย่างก่อนหน้านี้ต่อ คุณอาจต้องการทดสอบค่าที่แตกต่างกัน CountryRegion หลายค่า แล้วแสดงภาษาที่เหมาะสมโดยยึดตามค่า:

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

ข้อความSome other languageคือfalsepartอาร์กิวเมนต์ของฟังก์ชันภายในสุดIIf เนื่องจากแต่ละฟังก์ชันที่ซ้อนกันIIfคือfalsepartอาร์กิวเมนต์ของIIfฟังก์ชันที่มีฟังก์ชันอยู่ Some other language ข้อความจะถูกส่งกลับก็ต่อเมื่ออาร์กิวเมนต์ทั้งหมดของexprIIfฟังก์ชันประเมินเป็นFalse

สําหรับตัวอย่างอื่น สมมติว่าคุณทํางานที่ไลบรารี ฐานข้อมูลไลบรารีมีตารางที่ Check Outs ชื่อว่า ประกอบด้วยเขตข้อมูลที่ Due Dateชื่อ ซึ่งมีวันที่ที่หนังสือเล่มใดเล่มหนึ่งครบกําหนดส่ง คุณสามารถสร้างฟอร์มที่แสดงสถานะของรายการที่ถูกเช็คเอาท์ในตัวควบคุมได้โดยใช้ IIf ฟังก์ชันในคุณสมบัติของตัวควบคุม Control Source นั้น:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

เมื่อคุณเปิดฟอร์ม ในมุมมองฟอร์ม ตัวควบคุมจะแสดง OVERDUE ถ้าค่าของ Due Date มีค่าน้อยกว่าวันที่ Due todayNot Yet Due ปัจจุบัน

หมายเหตุ

เมื่อต้องการใช้ตัวดําเนินการทางตรรกะ เช่น And หรือOrในexprอาร์กิวเมนต์ของIIfฟังก์ชัน คุณต้องล้อมรอบนิพจน์ตรรกะในฟังก์ชัน Eval ดูตารางตัวอย่างที่ตามมา

ใช้ IIf ในคิวรี

ฟังก์ชัน IIf นี้มักจะใช้เพื่อสร้างเขตข้อมูลจากการคํานวณในคิวรี ไวยากรณ์จะเหมือนกัน ยกเว้นในคิวรี คุณต้องนําหน้านิพจน์ด้วยนามแฝงของเขตข้อมูลและเครื่องหมายจุดคู่ (:) แทนเครื่องหมายเท่ากับ (=) เมื่อต้องการใช้ตัวอย่างก่อนหน้า ให้พิมพ์ดังต่อไปนี้ในแถว เขตข้อมูล ของตารางออกแบบคิวรี:

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

ในกรณีนี้ Language: คือนามแฝงของฟิลด์

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคิวรีและเขตข้อมูลจากการคํานวณ ให้ดูที่ สร้างคิวรีแบบใช้เลือกข้อมูลอย่างง่าย

ใช้ IIf ในโค้ด VBA

หมายเหตุ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงสําหรับนักพัฒนา ในรายการดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา

ตัวอย่างนี้ใช้ IIf ฟังก์ชันเพื่อประเมิน TestMe พารามิเตอร์ของ CheckIt กระบวนงานและส่งกลับคํา Large ถ้าจํานวนมากกว่า 1000 มิฉะนั้น จะส่งกลับคําว่าSmall

Function CheckIt(TestMe As Integer)
    CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

ตัวอย่างเพิ่มเติม

  1. นิพจน์:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    ผลลัพธ์: If [AirportCode] เป็น "ORD"ส่งกลับ"Chicago" มิฉะนั้น ถ้า [AirportCode] เป็น "ATL"ให้ส่งคืน"Atlanta" มิฉะนั้น ถ้า [AirportCode] เป็น "SEA"ให้ส่งคืน"Seattle" มิฉะนั้น ให้ส่งคืน"Other"

  2. นิพจน์:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    ผลลัพธ์: ถ้า[ShipDate]เร็วกว่าวันที่ของวันนี้ ให้ส่งกลับ"Shipped" มิฉะนั้น ถ้า[ShipDate]เท่ากับวันที่ของวันนี้ ให้ส่งกลับ"Shipping today" มิฉะนั้น ให้ส่งคืน"Unshipped"

  3. นิพจน์:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    ผลลัพธ์: ถ้า [PurchaseDate] เก่ากว่า 1/1/2008ส่งกลับ"Old" มิฉะนั้น ให้ส่งคืน"New"

  4. นิพจน์:

    =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")
    

    ผลลัพธ์: ถ้า [Volts] อยู่ระหว่าง 12 และ 15 และ[Amps]อยู่ระหว่าง 0.25 และ 0.3 ให้ส่งกลับ"OK" มิฉะนั้น ให้ส่งคืน"Out of calibration"

  5. นิพจน์:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    ผลลัพธ์: If [CountryRegion] เป็น "Canada""USA", หรือ "Mexico"ส่งกลับ"North America" มิฉะนั้น ให้ส่งคืน"Other"

  6. นิพจน์:

    =IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))
    

    ผลลัพธ์: ถ้า[Average]เป็น 90 หรือมากกว่า ให้ส่งกลับ"A" มิฉะนั้น ถ้า[Average]เป็น 80 หรือมากกว่า ให้ส่งกลับ"B" มิฉะนั้น ถ้า[Average]เป็น 70 หรือมากกว่า ให้ส่งกลับ"C" มิฉะนั้น ถ้า[Average]เป็น 60 หรือมากกว่า ให้ส่งกลับ"D" มิฉะนั้น ให้ส่งคืน"F"

หมายเหตุ

ถ้าคุณกําลังใช้ IIf ฟังก์ชันเพื่อสร้างเขตข้อมูลจากการคํานวณในคิวรี ให้แทนที่เครื่องหมายเท่ากับ (=) ด้วยนามแฝงของเขตข้อมูลและเครื่องหมายจุดคู่ (:) ตัวอย่างเช่น Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).