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