Σε αυτό το σεμινάριο, θα μάθουμε πώς να ανοίγουμε ένα Recordset, να μετράμε τον αριθμό των εγγραφών στο Recordset, να περιηγούμαστε στο Recordset, να προσθέτουμε μια εγγραφή, να ενημερώνουμε μια εγγραφή, να διαβάζουμε μια τιμή από μια εγγραφή και να διαγράφουμε μια εγγραφή.
Έχουμε έναν Πίνακα Πρόσβασης, που ονομάζεται ProductsT που φαίνεται παρακάτω:
Άνοιγμα ενός Recordset
Πρώτα πρέπει να δημιουργήσουμε τη βάση δεδομένων που σκοπεύουμε να χρησιμοποιήσουμε, σε αυτή την περίπτωση είναι η τρέχουσα βάση δεδομένων. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε τη μέθοδο CurrentDB.OpenRecordSet για να ανοίξουμε/δημιουργήσουμε το Recordset μας.
Για να δημιουργήσουμε ένα Recsetset που θα μας επιτρέψει να χειριστούμε τα δεδομένα στον πίνακα που ονομάζεται ProductsT, θα χρησιμοποιήσουμε τον ακόλουθο κώδικα:
1 | CurrentDb.OpenRecordset ("ProductsT") |
Μετρώντας τον αριθμό των εγγραφών χρησιμοποιώντας VBA
Μόλις δημιουργήσετε ένα Recsetset, πιθανότατα θα θέλατε να κάνετε κάτι χρήσιμο με αυτό ή να χειριστείτε τα δεδομένα σε αυτό με κάποιο τρόπο. Μπορείτε να μετρήσετε τον αριθμό των εγγραφών στο σύνολο δεδομένων σας (σε αυτήν την περίπτωση ο πίνακας που ονομάζεται ΠροϊόνταT) χρησιμοποιώντας τον ακόλουθο κώδικα:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Αναπαραγωγή ενός RecordSet χρησιμοποιώντας VBA
Οι ακόλουθοι κωδικοί περνούν μέσα από το RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Ελαττώστε τη βάση δεδομένων μας ως βάση δεδομένωνΧαμηλώστε το Recordset As RecordsetΟρίστε τη βάση δεδομένων μας = CurrentDbΟρίστε ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Κάντε μέχρι το ourRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextΒρόχοςΤέλος υπο |
Προγραμματισμός VBA | Το Code Generator λειτουργεί για εσάς!
Προσθήκη εγγραφής σε RecordSet
Χρησιμοποιήστε τη μέθοδο Recordset.AddNew για να προσθέσετε μια νέα εγγραφή στο RecordSet:
1234567891011121314 | Sub RecordSet_Add ()Με CurrentDb.OpenRecordset ("ProductsT").Προσθεσε νεο! [ProductID] = 8! [ProductName] = "Προϊόν HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Παιχνίδια"! [UnitsInStock] = 15.ΕκσυγχρονίζωΤέλος μεΤέλος υπο |
Το αποτέλεσμα είναι:
Ενημέρωση ενός Recsetset
Πρέπει να χρησιμοποιήσετε τη μέθοδο Recordset.AddNew ή Recordset.Edit. Μετά από αυτήν τη δήλωση, πρέπει να χρησιμοποιήσετε τη μέθοδο Recordset.Update για να διατηρήσετε τις αλλαγές.
Ανάγνωση αξιών από ένα αρχείο
Πρέπει να χρησιμοποιήσετε τη μέθοδο Recordset.FindFirst για να δημιουργήσετε μια εγγραφή, την τρέχουσα εγγραφή. Στη συνέχεια, πρέπει να χρησιμοποιήσετε το Recordset.Fields για να καθορίσετε ποιο πεδίο θα κοιτάξετε.
12345678910111213141516 | Sub RecordSet_ReadValue ()Ελαττώστε τη βάση δεδομένων μας ως βάση δεδομένωνΧαμηλώστε το Recordset As RecordsetΟρίστε τη βάση δεδομένων μας = CurrentDbΟρίστε ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Με το δικό μας Recordset.FindFirst "ProductName =" & "'CCC προϊόντος'"Εάν .NoMatch ΤότεMsgBox "Δεν βρέθηκε αντιστοίχιση"ΑλλούMsgBox ourRecordset.Fields ("ProductCategory")Τέλος εανΤέλος μεΤέλος υπο |
Το αποτέλεσμα είναι:
Κουραστήκατε να ψάχνετε για παραδείγματα κώδικα VBA; Δοκιμάστε το AutoMacro!
Διαγραφή εγγραφής από Recsetset
Για να διαγράψετε μια εγγραφή από ένα Recordset πρέπει πρώτα να την κάνετε τρέχουσα εγγραφή χρησιμοποιώντας τη μέθοδο Recordset.FindFirst. Στη συνέχεια, μπορείτε να το διαγράψετε χρησιμοποιώντας τη μέθοδο Recordset.Delete. Ο ακόλουθος κώδικας δείχνει τον τρόπο διαγραφής της εγγραφής 2 στο σύνολο δεδομένων:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Ελαττώστε τη βάση δεδομένων μας ως βάση δεδομένωνΧαμηλώστε το Recordset As RecordsetΟρίστε τη βάση δεδομένων μας = CurrentDbΟρίστε ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Με το δικό μας Recordset. FindFirst "ProductName =" & "'Product BBB'"Εάν .NoMatch ΤότεMsgBox "Δεν βρέθηκε αντιστοίχιση"ΑλλούourRecordset.DeleteΤέλος εανΤέλος με«Άνοιξε ξανά τον πίνακαDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProductsT"Τέλος υπο |
Το αποτέλεσμα είναι: