Πρόσβαση σε VBA Recordsets - Open, Count, Loop and More

Σε αυτό το σεμινάριο, θα μάθουμε πώς να ανοίγουμε ένα 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ΒρόχοςΤέλος υπο

Προσθήκη εγγραφής σε 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")Τέλος εανΤέλος μεΤέλος υπο

Το αποτέλεσμα είναι:

Διαγραφή εγγραφής από 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"Τέλος υπο

Το αποτέλεσμα είναι:

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave