Ιδιότητα Recordset

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο προέρχεται από μηχανική μετάφραση, δείτε την αποποίηση ευθυνών. Θα βρείτε την αγγλική έκδοση του παρόντος άρθρου εδώ για αναφορά.

Ισχύει για

Σύνθετο πλαίσιο αντικειμένου

Αντικείμενο φόρμας

Πλαίσιο λίστας αντικειμένου

Αντικείμενο αναφοράς

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

παράσταση. Σύνολο εγγραφών

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

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

Η ιδιότητα 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 με τις ADO Εύρεση DAO βρείτε μεθόδους ή σε ένα προσαρμοσμένο παράθυρο διαλόγου για την Εύρεση εγγραφής.

  • Για να αναδιπλώσετε συναλλαγή (το οποίο μπορεί να γίνει επαναφορά) γύρω από ένα σύνολο επεξεργασιών που επηρεάζουν πολλαπλές φόρμες.

Αλλαγή ιδιότητα Recordset μια φόρμα μπορεί επίσης να αλλάξετε τις ιδιότητες προέλευση εγγραφών, RecordsetTypeκαι RecordLocks . Επίσης, ορισμένες ιδιότητες που σχετίζονται με δεδομένα ενδέχεται να παρακαμφθούν, για παράδειγμα, το φίλτρο, FilterOn, OrderByκαι OrderByOn ιδιότητες.

Κλήση της μεθόδου Επανεκτέλεση ερωτήματος του συνόλου εγγραφών μιας φόρμας (για παράδειγμα, Forms(0).Recordset.Requery) μπορεί να προκαλέσει τη φόρμα για να γίνετε μη δεσμευμένη. Για να ανανεώσετε τα δεδομένα σε μια φόρμα δεσμευμένη σε ένα σύνολο εγγραφών, ορίστε την ιδιότητα προέλευση εγγραφών της φόρμας στον εαυτό (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 προσφέρει αυτές τις αυτόματες μεταφράσεις για να βοηθά τους μη αγγλόφωνους χρήστες να απολαμβάνουν περιεχόμενο σχετικά με προϊόντα, υπηρεσίες και τεχνολογίες της Microsoft. Το άρθρο προέρχεται από μηχανική μετάφραση, συνεπώς ενδέχεται να περιέχει λάθη λεξιλογίου, σύνταξης ή γραμματικής.

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

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

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

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

×