Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Ισχύει για

Αντικείμενο 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
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

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

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

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

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

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

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

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

×