Online Reference |
Microsoft Reference |
|
|
DLookup FunctionAccess Function, ใช้ในการดึงค่าของฟิลด์ที่กำหนดจากกลุ่มเรคคอร์ด (domain) ที่ระบุ ฟังก์ชัน DLookup สามารถใช้ในมาโคร, โมดูล, expression คิวรี่ หรือตัว control แบบคำนวณบนฟอร์มหรือรายงาน ฟังก์ชัน DLookup สามารถใช้ในแสดงค่าของฟิลด์ที่ไม่ได้เป็นแหล่งข้อมูลของฟอร์มหรือรายงาน เช่น ฟอร์มใช้แหล่งข้อมูลจาก Table ชื่อ Order Details โดยฟอร์มแสดงค่าของฟิลด์ OrderID, ProductID, UnitPrice, Quantity และ Discount แต่ฟิลด์ ProductName อยู่ใน Table ชื่อ Products ซึ่งสามารถใช้ฟังก์ชัน Dlookup ในตัว control แบบคำนวณเพื่อแสดงชื่อ ProductName ในฟอร์มเดียวกัน ไวยากรณ์
อากิวเมนต์ของฟังก์ชัน DLookup มีรายละเอียด คือ
ลักษณะการประยุกต์ฟังก์ชัน DLookup ส่งค่าฟิลด์เดี่ยวตามสารสนเทศที่ระบุในอากิวเมนต์ criteria ถึงแม้ว่าอากิวเมนต์ criteria จะเป็นอากิวเมนต์ที่ไม่บังคับ ถ้าไม่มีการกำหนดค่า ฟังก์ชัน Dlookup จะส่งค่าแบบสุ่มจาก domain ถ้าไม่มีเรคคอร์ดที่สอดคล้องกับอากิวเมนต์ criteria หรือ domain ไม่มีเรคคอร์ด ฟังก์ชัน Dlookup จะส่งค่าว่าง ถ้ามีฟิลด์ที่ตรงกับอากิวเมนต์ criteria มากกว่า 1 ฟิลด์ ฟังก์ชัน Dlookup จะส่งออกค่าแรกที่พบ ดังนั้น การกำหนดอากิวเมนต์ criteria ต้องมั่นใจว่าค่าที่ส่งออกโดยฟังก์ชัน Dlookup ต้องเป็นค่าที่ไม่ซ้ำ (unique) อาจจะเป็นค่า primary key เช่น [EmployeeID] ตามตัวอย่าง Dim varX As Variant การใช้ฟังก์ชัน DLookup ในมาโคร หรือโมดูล, expression ในคิวรี่หรือตัว control ต้องสร้างอากิวเมนต์ criteria อย่างระมัดระวังเพื่อทำให้มั่นใจว่าการคำนวณถูกต้อง นอกจากนี้ฟังก์ชัน DLookup สามารถใช้เป็น expression ของฟิลด์คำนวณในคิวรี่ หรือแถว Update To ในคิวรี่แบบ Update ฟังก์ชัน DAvg สามารถใช้ในโมดูล, มาโคร หรือตัว control แบบคำนวณบนฟอร์ม ถ้าฟิลด์ที่ต้องการดูค่าไม่ได้เป็นแหล่งข้อมูลของฟอร์ม เช่น ฟอร์มใช้แหล่งข้อมูลจาก Table ชื่อ Order Details และมี text box ชื่อ ProductID เพื่อแสดง ProductID สำหรับการดูค่าของ ProductName ที่อยู่ใน Table ชื่อ Products เป็นค่าใน text box สามารถสร้างเป็นอีก text box และตั้งค่าคุณสมบัติ ControlSource ด้วย expression นี้ =DLookup("[ProductName]", "Products", "[ProductID] =" Forms![Order Details]!ProductID) Tip ถึงแม้ว่าฟังก์ชัน DLookup จะใช้ในดูค่าจาก Table ได้ แต่การสร้างคิวรี่ดึงฟิลด์จาก Table ที่มีฟิลด์ที่ต้องการในการแสดงค่า เพื่อเป็นแหล่งของฟอร์ม หรือรายงานจะมีประสิทธิภาพมากกว่า หมายเหตุ ฟังก์ชัน DLookup จะไม่นำเรคคอร์ดที่ยังไม่บันทึกการเปลี่ยนแปลงใน domain มาคำนวณ ถ้าต้องการนำมาคำนวณด้วยให้ทำการบันทึกก่อน ตัวอย่างตัวอย่างการใช้ฟังก์ชัน DLookup ส่งค่าสารสนเทศของชื่อจากฟิลด์ CompanyName ของเรคคอร์ดที่สอดคล้องกับอากิวเมนต์ criteria โดย Domain คือ Table ชื่อ Shippers อากิวเมนต์ criteria คัดเลือกเฉพาะเรคคอร์ดที่มี ShipperID = 1 Dim varX As Variant ตัวอย่างต่อไปจาก Table ชื่อ Shippers ใช้ตัว control ของฟอร์ม ShippID ในการกำหนด criteria สำหรับฟังก์ชัน DLookup หมายเหตุ การอ้างอิงตัว control ไม่อยู่ในเครื่องหมายคำพูด ทั้งนี้เพื่อทำให้มั่นใจว่าเมื่อมีการเรียกฟังก์ชัน DLookup ทุกครั้ง Microsoft Access จะนำค่าปัจจุบันมาให้ Dim varX As Variant ตัวอย่างต่อไปใช้ตัวแปร IntSearch ในการดึงค่า Dim intSearch As Integer, varX As Variant
|
||||||||||||