ฟังก์ชัน 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)

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

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

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

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

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

×