ينطبق على
Access لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

ينطبق على

عنصر ComboBox

عنصر Form

عنصر ListBox

عنصر Report

يقوم بإرجاع أو تعيين عنصر ADO Recordset أو DAO Recordset الذين يمثلان مصدر السجلات بالنسبة للنموذج المحدد أو التقرير أو عنصر تحكم مربع القائمة أو عنصر تحكم مربع التحرير والسرد. القراءة/الكتابة.

تعبير.Recordset

التعبير Required. هو تعبير يقوم بإرجاع أحد العناصر الموجودة في القائمة "ينطبق على".

ملاحظات

تقوم الخاصية Recordset بإرجاع العنصر recordset الذي يقدم البيانات التي يتم استعراضها في نموذج أو تقرير أو عنصر تحكم مربع قائمة أو عنصر تحكم مربع تحرير وسرد. على سبيل المثال، إذا كان النموذج يستند إلى استعلام، تصبح الإشارة إلى الخاصية Recordset هي المكافئ لاستنساخ العنصر Recordset باستخدام نفس الاستعلام. ومع ذلك، على عكس استخدام خاصية RecordsetClone، يؤدي تغيير السجل الحالي في "مجموعة السجلات" recordset التي تم إرجاعها بواسطة خاصية Recordset للنموذج إلى تعيين السجل الحالي للنموذج.

لا تتوفر هذه الخاصية إلا باستخدام التعليمة البرمجية لـ Visual Basic for Applications (‏‎‎VBA‏‎‎).

يتحدد سلوك القراءة/الكتابة للخاصية Recordset حسب نوع مجموعة السجلات recordset(ADO أو DAO) ونوع البيانات (Access أو SQL) المضمنة في مجموعة السجلات المعرفة بواسطة الخاصية.

نوع "مجموعة السجلات" Recordset

تستند إلى بيانات 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 Find أو DAO Find في حوار مخصص للبحث عن سجل.

  • إجراء التفاف لمعاملة (يمكن نشرها مرة أخرى) حول مجموعة من عمليات التحرير التي تؤثر على نماذج متعددة.

قد يؤدي تغيير الخاصية 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

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.