Ισχύει για
Access για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ισχύει για

Αντικείμενο ComboBox

Αντικείμενο Form

Αντικείμενο ListBox

Αντικείμενο Report

Επιστρέφει ή ορίζει το αντικείμενο Recordset του ADO ή Recordset του DAO που αντιπροσωπεύει την προέλευση εγγραφών για τη συγκεκριμένη φόρμα, αναφορά, στοιχείο ελέγχου πλαισίου λίστας ή στοιχείο ελέγχου σύνθετου πλαισίου. Ανάγνωσης/εγγραφής.

παράσταση.Recordset

παράσταση Υποχρεωτικό. Μια παράσταση που επιστρέφει ένα από τα αντικείμενα της λίστας "Ισχύει για".

Παρατηρήσεις

Η ιδιότητα Recordset επιστρέφει το αντικείμενο συνόλου εγγραφών που παρέχει τα δεδομένα στα οποία γίνεται περιήγηση σε μια φόρμα, αναφορά, στοιχείο ελέγχου πλαισίου λίστας ή στοιχείο ελέγχου σύνθετου πλαισίου. Εάν μια φόρμα βασίζεται σε ένα ερώτημα, για παράδειγμα, αναφέρεται στην ιδιότητα Recordset, είναι ισοδύναμη με την κλωνοποίηση ενός αντικειμένου Recordset, χρησιμοποιώντας το ίδιο ερώτημα. Ωστόσο, σε αντίθεση με την ιδιότητα RecordsetClone, η αλλαγή της τρέχουσας εγγραφής στο σύνολο εγγραφών που επιστρέφεται από την ιδιότητα Recordset της φόρμας ορίζει επίσης την τρέχουσα εγγραφή της φόρμας.

Αυτή η ιδιότητα είναι διαθέσιμη μόνο με τη χρήση κώδικα της Visual Basic for Applications (VBA).

Η συμπεριφορά ανάγνωσης/εγγραφής της ιδιότητας 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 με τις μεθόδους 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

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.