แมโครแอคชัน SearchForRecord

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

คุณสามารถใช้แมโครแอคชัน 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 ชนิดของวัตถุ: ตาราง
ชื่อวัตถุ: ประเภท
ระเบียน: แรก
โดยที่ สภาพ: คําอธิบาย = "เครื่องดื่ม"