คุณสมบัติ 'ชุดระเบียน' (Recordset)

นำไปใช้กับ

วัตถุ ComboBox

วัตถุ Form

วัตถุ ListBox

วัตถุ Report

ส่งกลับค่าหรือตั้งค่าวัตถุ Recordset ADO หรือ Recordset DAO ที่แทนถึง แหล่งข้อมูลระเบียน สำหรับฟอร์มที่ระบุ รายงาน ตัวควบคุมกล่องรายการ หรือตัวควบคุมกล่องคำสั่งผสม อ่าน/เขียน

นิพจน์ Recordset

นิพจน์ จำเป็น นิพจน์ที่ส่งกลับวัตถุใดวัตถุหนึ่งในรายการนำไปใช้กับ

ข้อสังเกต

คุณสมบัติ Recordset ส่งกลับวัตถุชุดระเบียนที่มีข้อมูลการเรียกดูในฟอร์ม รายงาน ตัวควบคุมกล่องรายการ หรือตัวควบคุมกล่องคำสั่งผสม ถ้าฟอร์มยึดตามคิวรี ตัวอย่างเช่น การอ้างอิงถึงคุณสมบัติ Recordset จะเทียบเท่ากับการโคลนวัตถุ Recordset โดยใช้คิวรีเดียวกัน ต่างจากการใช้คุณสมบัติ RecordsetClone การเปลี่ยนแปลงระเบียนที่เป็นปัจจุบันในชุดระเบียนฟอร์มที่คืนค่าโดยคุณสมบัติ Recordset ของฟอร์มยังเป็นการตั้งค่าชุดระเบียนปัจจุบันของฟอร์มด้วย

คุณสมบัตินี้จะพร้อมใช้งานได้โดยการใช้โค้ด Visual Basic for Applications (VBA)

ลักษณะการทำงานในการอ่าน/เขียนของคุณสมบัติ Recordset จะถูกกำหนดโดยชนิดของชุดระเบียน (ADO หรือ DAO) และชนิดของข้อมูล (Access หรือ SQL) ที่มีอยู่ในชุดระเบียนที่ระบุตามคุณสมบัติ

ชนิด ชุดข้อมูล

ยึดตามข้อมูล SQL

ยึดตามข้อมูล Access

ADO

อ่าน/เขียน

อ่าน/เขียน

DAO

ไม่มี

อ่าน/เขียน

ตัวอย่างต่อไปนี้จะเปิดฟอร์ม เปิดชุดระเบียน และผูกฟอร์มเข้ากับชุดระเบียนนั้นด้วยการตั้งค่าคุณสมบัติ Recordset ของฟอร์มไปยังวัตถุ Recordset ที่สร้างขึ้นใหม่

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

ใช้คุณสมบัติ Recordset:

  • เมื่อต้องการผูกฟอร์มหลายฟอร์มเข้ากับชุดข้อมูลทั่วไป ซึ่งทำให้สามารถซิงโครไนซ์ฟอร์มหลายฟอร์มได้ ตัวอย่างเช่น

    Set Me.Recordset = Forms!Form1.Recordset

  • เมื่อต้องการใช้เมธอดที่มีวัตถุ Recordset ที่ไม่สนับสนุนโดยตรงบนฟอร์ม ตัวอย่างเช่น คุณสามารถใช้คุณสมบัติ Recordset ที่มีเมธอด ค้นหา ADO หรือ ค้นหา DAO ในกล่องโต้ตอบแบบกำหนดเองสำหรับการค้นหาระเบียนได้

  • เมื่อต้องการวนธุรกรรม (ที่สามารถย้อนกลับได้) รอบชุดการแก้ไขที่มีผลกระทบต่อฟอร์มหลายฟอร์ม

การเปลี่ยนแปลง Recordset ของฟอร์มอาจเปลี่ยนคุณสมบัติ RecordSourceRecordsetType และRecordLocks ได้ นอกจากนี้ คุณสมบัติบางอย่างที่เกี่ยวข้องกับข้อมูลอาจถูกแทนที่ ตัวอย่างเช่น คุณสมบัติ FilterFilterOnOrderByและOrderByOn

การเรียกเมธอด Requery ของชุดระเบียนของฟอร์ม (ตัวอย่างเช่น Forms(0).Recordset.Requery) อาจยกเลิกการผูกฟอร์ม เมื่อต้องการรีเฟรชข้อมูลในฟอร์มที่ผูกไว้กับชุดระเบียน ให้ตั้งค่าคุณสมบัติ RecordSource ของฟอร์มให้เป็นตัวฟอร์มเอง (Forms(0).RecordSource = Forms(0).RecordSource)

เมื่อฟอร์มถูกผูกไว้กับชุดระเบียน ข้อผิดพลาดจะเกิดขึ้นถ้าคุณใช้ตัวกรองตามคำสั่งฟอร์ม

ตัวอย่าง

ตัวอย่างต่อไปนี้ใช้คุณสมบัติ Recordset เพื่อสร้างสำเนาใหม่ของวัตถุ Recordset จากฟอร์มปัจจุบัน จากนั้นพิมพ์ชื่อของเขตข้อมูลในหน้าต่างแก้ไขจุดบกพร่อง

Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub

ตัวอย่างถัดไปใช้คุณสมบัติ Recordset และวัตถุ Recordset ในการซิงโครไนซ์ชุดระเบียนเข้ากับระเบียนปัจจุบันของฟอร์ม เมื่อเลือกชื่อบริษัทจากกล่องคำสั่งผสม เมธอด FindFirst ใช้ในการค้นหาระเบียนสำหรับบริษัทดังกล่าว ทำให้ฟอร์มแสดงระเบียนที่พบ

Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub

โค้ดต่อไปนี้ช่วยระบุชนิดของชุดระเบียนที่ถูกส่งกลับโดยคุณสมบัติ Recordset ภายใต้เงื่อนไขที่แตกต่างกัน

Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub
ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

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

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

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

×