คุณสามารถใช้แมโครแอคชัน SearchForRecord ในฐานข้อมูล Access บนเดสก์ท็อปเพื่อค้นหาระเบียนที่เฉพาะเจาะจงในตาราง คิวรี ฟอร์ม หรือรายงาน
การตั้งค่า
แมโครแอคชัน SearchForRecord มีอาร์กิวเมนต์ต่อไปนี้
อาร์กิวเมนต์ของแอคชัน |
คำอธิบาย |
||||||||||
ชนิดของวัตถุ |
ใส่หรือเลือกชนิดของวัตถุฐานข้อมูลที่คุณกําลังค้นหา คุณสามารถเลือก ตาราง, คิวรี, ฟอร์ม หรือ รายงาน |
||||||||||
ชื่อวัตถุ |
ใส่หรือเลือกวัตถุที่ระบุซึ่งมีระเบียนที่ต้องการค้นหา รายการดรอปดาวน์จะแสดงวัตถุฐานข้อมูลทั้งหมดของชนิดที่คุณเลือกสําหรับอาร์กิวเมนต์ ชนิดของวัตถุ |
||||||||||
ระเบียน |
ระบุจุดเริ่มต้นและทิศทางของการค้นหา
|
||||||||||
เงื่อนไขของ Where |
ใส่เกณฑ์สําหรับการค้นหาโดยใช้ไวยากรณ์เดียวกับส่วนคําสั่ง SQL WHERE โดยไม่มีคําว่า "WHERE" เท่านั้น ตัวอย่างเช่น Description = "Beverages" เมื่อต้องการสร้างเกณฑ์ที่มีค่าจากกล่องข้อความบนฟอร์ม คุณต้องสร้างนิพจน์ที่ต่อท้ายส่วนแรกของเกณฑ์ด้วยชื่อของกล่องข้อความที่มีค่าที่จะค้นหา ตัวอย่างเช่น เกณฑ์ต่อไปนี้จะค้นหาค่าในเขตข้อมูลคําอธิบายในกล่องข้อความที่ชื่อ txtDescription บนแบบฟอร์มที่ชื่อ frmCategories ให้สังเกตเครื่องหมายเท่ากับ (=) ที่จุดเริ่มต้นของนิพจน์ และการใช้เครื่องหมายอัญกต์เดี่ยว (') บนด้านใดด้านหนึ่งของการอ้างอิงกล่องข้อความ: ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
ข้อสังเกต
-
ในกรณีที่ระเบียนมากกว่าหนึ่งระเบียนตรงกับเกณฑ์ในอาร์กิวเมนต์ เงื่อนไข Where ตัวคูณต่อไปนี้จะกําหนดระเบียนที่พบ:
-
การตั้งค่าอาร์กิวเมนต์ Record ดูตารางในส่วน การตั้งค่า สําหรับข้อมูลเพิ่มเติมเกี่ยวกับอาร์กิวเมนต์ ระเบียน
-
ลําดับการจัดเรียงของระเบียน ตัวอย่างเช่น ถ้าอาร์กิวเมนต์ Record ถูกตั้งค่าเป็น First การเปลี่ยนลําดับการจัดเรียงของระเบียนอาจเปลี่ยนระเบียนที่พบ
-
-
วัตถุที่ระบุในอาร์กิวเมนต์ 'ชื่อวัตถุ ' ต้องเปิดก่อนที่จะเรียกใช้แอคชันนี้ มิฉะนั้น จะเกิดข้อผิดพลาดขึ้น
-
ถ้าไม่ตรงตามเกณฑ์ในอาร์กิวเมนต์ เงื่อนไข Where จะไม่มีข้อผิดพลาดเกิดขึ้น และโฟกัสจะยังคงอยู่บนระเบียนปัจจุบัน
-
เมื่อค้นหาระเบียนก่อนหน้าหรือระเบียนถัดไป การค้นหาจะไม่ "ตัด" เมื่อการค้นหามาถึงจุดสิ้นสุดของข้อมูล ถ้าไม่มีระเบียนที่ตรงกับเงื่อนไขเพิ่มเติม จะไม่มีข้อผิดพลาดเกิดขึ้นและโฟกัสจะยังคงอยู่บนระเบียนปัจจุบัน เมื่อต้องการยืนยันว่าพบรายการที่ตรงกัน คุณสามารถใส่เงื่อนไขสําหรับการกระทําถัดไป และทําให้เงื่อนไขเหมือนกับเกณฑ์ในอาร์กิวเมนต์ เงื่อนไข Where
-
เมื่อต้องการเรียกใช้แอคชัน SearchForRecord ในโมดูล VBA ให้ใช้เมธอด SearchForRecord ของวัตถุ DoCmd
-
แมโครแอคชัน SearchForRecord จะคล้ายกับแมโครแอคชัน FindRecord แต่ SearchForRecord มีฟีเจอร์การค้นหาที่มีประสิทธิภาพมากขึ้น แมโครแอคชัน FindRecord ใช้สําหรับการค้นหาสตริงเป็นหลัก และจะทําซ้ําฟังก์ชันการทํางานของกล่องโต้ตอบ ค้นหา แมโครแอคชัน SearchForRecord ใช้เกณฑ์ที่เหมือนกับของตัวกรองหรือคิวรี SQL รายการต่อไปนี้แสดงสิ่งที่คุณสามารถทําได้ด้วยแมโครแอคชัน SearchForRecord :
-
คุณสามารถใช้เกณฑ์ที่ซับซ้อนในอาร์กิวเมนต์ เงื่อนไข Where เช่น
-
คําอธิบาย = "เครื่องดื่ม" และ CategoryID = 11
-
คุณสามารถอ้างอิงไปยังเขตข้อมูลที่อยู่ในแหล่งระเบียนของฟอร์มหรือรายงาน แต่ไม่แสดงบนฟอร์มหรือรายงาน ในตัวอย่างก่อนหน้า ต้องไม่แสดง Description หรือ CategoryID บนแบบฟอร์มหรือรายงานเพื่อให้เกณฑ์ทํางาน
-
คุณสามารถใช้ตัวดําเนินการเชิงตรรกะ เช่น <>, AND, OR และ BETWEEN แอคชัน FindRecord จะตรงกับสตริงที่เท่ากับ ขึ้นต้นด้วย หรือมีสตริงที่กําลังค้นหาเท่านั้น
ตัวอย่าง
แมโครต่อไปนี้จะเปิดตาราง ประเภท ก่อนโดยใช้แอคชัน OpenTable จากนั้นแมโครจะใช้แมโครแอคชัน SearchForRecord เพื่อค้นหาระเบียนแรกในตารางที่เขตข้อมูลคําอธิบายเท่ากับ "เครื่องดื่ม"
การดำเนินการ |
อาร์กิวเมนต์ |
OpenTable |
ชื่อตาราง: ประเภท มุมมอง: แผ่นข้อมูล โหมดข้อมูล: แก้ไข |
SearchForRecord |
ชนิดของวัตถุ: ตาราง ชื่อวัตถุ: ประเภท บันทึก: ขั้นแรก ตําแหน่งเงื่อนไข: คําอธิบาย = "เครื่องดื่ม" |