ฟังก์ชัน DLookup

หมายเหตุ: เราต้องการมอบเนื้อหาวิธีใช้ปัจจุบันในภาษาของคุณให้กับคุณโดยเร็วที่สุดเท่าที่เราจะทำได้ หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณแจ้งให้เราทราบว่าข้อมูลดังกล่าวมีประโยชน์ต่อคุณที่ด้านล่างของหน้านี้ได้หรือไม่ นี่คือบทความภาษาอังกฤษเพื่อให้ง่ายต่อการอ้างอิง

ในฐานข้อมูลบนเดสก์ท็อปของ Access คุณสามารถใช้ฟังก์ชันDLookupเพื่อรับค่าของเขตข้อมูลเฉพาะเจาะจงจากชุดระเบียน (แบบโดเมน ) ที่ระบุ ใช้ฟังก์ชันDLookupใน Visual Basic สำหรับแอปพลิเคชัน (VBA) มอดูลแมโคร นิพจน์แบบสอบถาม หรือตัวควบคุมที่มีการคำนวณ บนฟอร์มหรือรายงาน

หมายเหตุ: บทความนี้ใช้ไม่ได้กับแอป Access

คุณสามารถใช้ฟังก์ชันDLookupเพื่อแสดงค่าของเขตข้อมูลที่ไม่ได้อยู่ในแหล่งระเบียนสำหรับฟอร์มหรือรายงานของคุณ ตัวอย่าง สมมติว่า คุณมีในฟอร์มโดยยึดตามตารางที่มีรายละเอียดใบสั่งซื้อ ฟอร์มแสดงเขตข้อมูล OrderID, ProductID, UnitPrice ปริมาณ และส่วนลด อย่างไรก็ตาม เขตข้อมูล ProductName อยู่ในตารางอื่น ตารางผลิตภัณฑ์ คุณสามารถใช้ฟังก์ชันDLookupในตัวควบคุมจากการคำนวณจะแสดง ProductName บนฟอร์มเดียวกัน

ไวยากรณ์

DLookup ( expr โดเมน [criteria] )

ไวยากรณ์ของฟังก์ชันDLookupมีอาร์กิวเมนต์ต่อไปนี้:

อาร์กิวเมนต์

คำอธิบาย

expr

ต้องระบุ นิพจน์ที่ระบุเขตข้อมูลที่มีค่าที่คุณต้องการส่งกลับ อาจเป็นแบบนิพจน์สตริง ระบุเขตข้อมูลในตารางหรือแบบสอบถาม หรืออาจเป็นนิพจน์ที่ทำการคำนวณข้อมูลในเขตข้อมูลนั้น ในexprคุณสามารถใส่ชื่อของเขตข้อมูลในตาราง ตัวควบคุมบนฟอร์ม ค่าคง หรือฟังก์ชัน ถ้าexprมีฟังก์ชัน อาจเป็นโดเมนรวมของอยู่แล้วภายใน หรือผู้ใช้กำหนดเอง แต่ไม่อื่นหรือฟังก์ชันการรวม SQL

โดเมน

ต้องระบุ นิพจน์สตริงที่ระบุชุดของระเบียนที่เป็นส่วนหนึ่งของโดเมน อาจเป็นชื่อตารางหรือชื่อแบบสอบถามสำหรับแบบสอบถามที่จำเป็นต้องใช้พารามิเตอร์

เกณฑ์

เพิ่มเติม นิพจน์สตริงที่ที่ใช้เพื่อจำกัดช่วงของข้อมูลที่มีดำเนินการที่ฟังก์ชันDLookup ตัวอย่างเช่นเกณฑ์มักเทียบเท่ากับคำสั่ง where ในนิพจน์ SQL ไม่มีคำที่ ถ้าไม่ใส่เกณฑ์ฟังก์ชันDLookupประเมินexprกับโดเมนทั้งหมด เขตข้อมูลใด ๆ ที่มีอยู่ในเงื่อนไขต้องมีเขตข้อมูลในโดเมน มิฉะนั้น ฟังก์ชันDLookupจะส่งกลับตัวNull

ข้อสังเกต

ส่งกลับฟังก์ชันDLookupที่ค่าเขตข้อมูลเดียวโดยยึดตามข้อมูลที่ระบุในเกณฑ์ แม้ว่าเงื่อนไขเป็นอาร์กิวเมนต์ ไม่จำเป็นถ้าคุณไม่ใส่ค่าสำหรับเกณฑ์ฟังก์ชันDLookupจะส่งกลับค่าสุ่มในโดเมน

ถ้าไม่มีระเบียนที่เป็นไปตามเงื่อนไขหรือโดเมนประกอบด้วยระเบียนใด ๆ ฟังก์ชันDLookupส่งกลับค่า Null

ถ้าเขตข้อมูลมากกว่าหนึ่งตรงกับเกณฑ์ฟังก์ชันDLookupส่งกลับปรากฏครั้งแรก คุณควรระบุเกณฑ์ที่จะให้แน่ใจว่า ค่าของเขตข้อมูลที่ส่งกลับ โดยฟังก์ชันDLookupไม่ซ้ำกัน คุณอาจต้องการใช้ค่าคีย์หลัก สำหรับเกณฑ์ของคุณ เช่น[EmployeeID]ในตัวอย่างต่อไปนี้ เพื่อให้แน่ใจว่า ฟังก์ชันDLookupส่งกลับค่าที่ไม่ซ้ำกัน:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

ไม่ว่าคุณใช้ฟังก์ชันDLookupในแมโคร หรือมอดูล นิพจน์แบบสอบถาม หรือตัวควบคุมจากการคำนวณ คุณต้องสร้างอาร์กิวเมนต์เกณฑ์อย่างระมัดระวังเพื่อให้แน่ใจว่า จะมีประเมินอย่างถูกต้อง

คุณสามารถใช้ฟังก์ชันDLookupเพื่อระบุเกณฑ์ในแถวเกณฑ์ของคิวรี ภายในเขตข้อมูลจากการคำนวณนิพจน์ ในคิวรี หรือ ในแถวอัปเดตเป็นในแออัปเดตคิวรี

คุณสามารถใช้ฟังก์ชันDLookupในนิพจน์ในตัวควบคุมจากการคำนวณบนฟอร์มหรือรายงานถ้าเขตข้อมูลที่คุณต้องการแสดงที่ไม่ได้อยู่ในแหล่งระเบียนที่ฟอร์มหรือรายงานของคุณอยู่ ตัวอย่าง สมมติว่า คุณมีในฟอร์มรายละเอียดใบสั่งโดยยึดตามตารางที่มีรายละเอียดใบสั่งกับกล่องข้อความที่เรียกว่าหมายเลขผลิตภัณฑ์ที่แสดงเขตข้อมูลหมายเลขผลิตภัณฑ์ เมื่อต้องการค้นหา ProductName จากตารางผลิตภัณฑ์โดยยึดตามค่าในกล่องข้อความ คุณไม่สามารถสร้างกล่องข้อความอื่น และตั้งค่าคุณสมบัติแหล่งตัวควบคุมในนิพจน์ต่อไปนี้:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

เคล็ดลับ

  • แม้ว่าคุณสามารถใช้ฟังก์ชันDLookupเพื่อแสดงค่าจากเขตข้อมูลในแบบตาราง Foreign Key อาจมีประสิทธิภาพมากกว่าการสร้างคิวรีที่ประกอบด้วยเขตข้อมูลที่คุณต้องการจากทั้งสองตาราง จากนั้นไปยังพื้นฐานของฟอร์ม หรือรายงานในแบบสอบถามได้

  • คุณยังสามารถใช้ตัวช่วยสร้างการค้นหาเพื่อค้นหาค่าในตารางต่างประเทศ

หมายเหตุ: การเปลี่ยนแปลงระเบียนในโดเมนไม่ได้บันทึกไว้ไม่ถูกรวมไว้เมื่อคุณใช้ฟังก์ชันนี้ ถ้าคุณต้องการให้DLookupฟังก์ชันจะยึดตามค่ามีการเปลี่ยนแปลง คุณจะต้องบันทึกการเปลี่ยนแปลง ด้วยการคลิกบันทึกระเบียนภายใต้ระเบียนบนแท็บข้อมูลการย้ายโฟกัสไปยังระเบียนอื่น หรือ โดยใช้วิธีการอัปเดต .

ตัวอย่าง

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

ตัวอย่างต่อไปนี้ส่งกลับข้อมูลชื่อจากเขตข้อมูล CompanyName ของระเบียนตรงกับเกณฑ์ โดเมนเป็นตัวเลขโทรศัพท์ อาร์กิวเมนต์เกณฑ์จำกัดชุดผลลัพธ์ของระเบียนถึงผู้ที่รหัสเท่ากับ 1

Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")

ตัวอย่างถัดไปจากเลขโทรศัพท์ใช้ตัวควบคุมฟอร์มรหัสการใส่เกณฑ์สำหรับฟังก์ชันDLookup โปรดสังเกตว่า การอ้างอิงไปยังตัวควบคุมจะไม่รวมอยู่ในเครื่องหมายอัญประกาศที่แสดงสตริ ให้แน่ใจว่า ทุกครั้งที่เรียกว่าฟังก์ชันDLookup , Access จะรับค่าปัจจุบันจากตัวควบคุม

Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)

ตัวอย่างถัดไปใช้ตัวแปรintSearchเพื่อรับค่า

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×