חל על
|
אובייקט 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 NextEnd 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.CloseEnd 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 IfEnd Sub