Ιδιότητα Recordset

Ισχύει για

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

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

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

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

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

παράσταση.Recordset

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

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

Η ιδιότητα 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
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
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×