חל על
אובייקט ComboBox |
אובייקט Form |
אובייקט ListBox |
אובייקט Report |
החזרה או הגדרה של אובייקטי Recordset של ADO או Recordset של DAO שמייצגים את מקור רשומות עבור הטופס, הדוח, פקד תיבת הרשימה או פקד התיבה המשולבת שצוינו. קריאה/כתיבה.
expression.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 עם פעולת השירות Find של ADO או פעולת השירות Find של DAO בתיבת דו-שיח מותאמת אישית לחיפוש רשומה.
-
כדי לעטוף טרנזקציות (שניתן להחזירן למצב קודם) מסביב לקבוצת עריכות שמשפיעות על טפסים מרובים.
שינוי המאפיין Recordset של הטופס עשוי אף לשנות את המאפיינים RecordSource, RecordsetType ו- RecordLocks. כמו כן, ייתכן שכמה מאפיינים הקשורים לנתונים יוחלפו, לדוגמה, המאפיינים Filter, FilterOn, OrderBy ו- 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