Αναγν. άρθρου: 248011 - Τελευταία αναθεώρηση: Δευτέρα, 27 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0

ACC2000: Τρόπος ελέγχου φόρμας σύνδεση συναλλαγών σε βάσεις δεδομένων της Access

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Για προχωρημένους: Απαιτεί ειδικό κωδικοποίησης, διαλειτουργικότητας και ικανότητες πολλών χρηστών.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο παρουσιάζει τον τρόπο χρήσης Data Access Objects (DAO) για συναλλαγές του στοιχείου ελέγχου σε μια φόρμα που βασίζεται σε έναν πίνακα (φόρμα όριο) σε μια βάση δεδομένων Microsoft Access (Jet).

Περισσότερες πληροφορίες

Συνήθως, ο προγραμματιστής πρέπει να επιτρέψετε μια δέσμευση εφαρμογής βάσης δεδομένων όλων των χρηστών ή καμία από τις αλλαγές στα δεδομένα σε μια φόρμα. Στις εκδόσεις της Access παλαιότερη από την έκδοση 2000, που δεν ήταν δυνατό να εμπεριέχουν αλλαγές δεδομένων που έγιναν σε φόρμες όριο μέσα στις συναλλαγές. Αυτό έγινε επειδή ήταν χειρίζεται όλες τις συναλλαγές σε φόρμες με σύνδεση σε ένα χώρο ξεχωριστό εργασίας, πρόσβαση μόνο στη Microsoft Access.

Στην Access 2000, ωστόσο, μπορείτε να χρησιμοποιήσετε ένα συνδυασμό των Data Access Objects (DAO) και το νέο, σχηματίζουνRecordsetιδιότητα που παρέχουν αυτήν τη δυνατότητα. Το παράδειγμα σε αυτό το άρθρο υποθέτει ότι ο χρήστης θέλει να σας ζητηθεί να ολοκληρώσει όλες τις αλλαγές που έγιναν στα δεδομένα στη φόρμα, όταν ο χρήστης κλείνει τη φόρμα. Εκείνη τη στιγμή, ο χρήστης να ολοκληρώσετε είτε όλες τις αλλαγές ή καμία από τις αλλαγές.

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.ΣΗΜΕΙΩΣΗ: Του δείγματος κώδικα σε αυτό το άρθρο χρησιμοποιεί Microsoft Data Access Objects. Για να εκτελεστεί σωστά αυτός ο κώδικας, πρέπει να συσχετίσετε τη βιβλιοθήκη αντικειμένων Microsoft DAO 3.6. Για να γίνει αυτό, κάντε κλικ στο κουμπίΑναφορέςΣτο διακομιστήΕργαλείαμενού στο πρόγραμμα επεξεργασίας της Visual Basic, και βεβαιωθείτε ότι τοΒιβλιοθήκη αντικειμένων Microsoft DAO 3.6το πλαίσιο ελέγχου είναι επιλεγμένο.

ΣΗΜΕΙΩΣΗ: Παράδειγμα αυτό είναι σχεδιασμένη να λειτουργεί με μία κύριων φορμών. Δεν έχει σχεδιαστεί για εργασία με δευτερεύουσες φόρμες συνδεδεμένο.

Έλεγχος των συναλλαγών σε φόρμες σύνδεση

  1. Ανοίξτε το δείγμα βάσης δεδομένων Northwind.mdb.
  2. Δημιουργήστε μια νέα φόρμα που βασίζεται στον πίνακα "Πελάτες".
  3. Προσθέστε όλα τα πεδία στην ενότητα Λεπτομέρεια της φόρμας.
  4. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικόςΓια να προβάλετε τη λειτουργική μονάδα της φόρμας και στη συνέχεια προσθέστε τον ακόλουθο κώδικα στη λειτουργική μονάδα:
    Option Compare Database
    Option Explicit
    
    Private boolFrmDirty As Boolean
    Private boolFrmSaved As Boolean
    
    Private Sub Form_AfterDelConfirm(Status As Integer)
        If Me.Saved = False Then Me.Saved = (Status = acDeleteOK)
    End Sub
    
    Private Sub Form_AfterUpdate()
        Me.Saved = True
    End Sub
    
    Private Sub Form_Delete(Cancel As Integer)
        If Me.Dirtied = False Then DBEngine.BeginTrans
        Me.Dirtied = True
    End Sub
    
    Private Sub Form_Dirty(Cancel As Integer)
        If Me.Dirtied = False Then DBEngine.BeginTrans
        Me.Dirtied = True
    End Sub
    
    Private Sub Form_Open(Cancel As Integer)
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT * FROM Customers", dbOpenDynaset)
        Set Me.Recordset = rs
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
        Dim msg As Integer
        If Me.Saved Then
            msg = MsgBox("Do you want to commit all changes?", vbYesNoCancel)
            Select Case msg
                Case vbYes
                    DBEngine.CommitTrans
                Case vbNo
                    DBEngine.Rollback
                Case vbCancel
                    Cancel = True
            End Select
        Else
            If Me.Dirtied Then DBEngine.Rollback
        End If
    End Sub
    
    Public Property Get Dirtied() As Boolean
        Dirtied = boolFrmDirty
    End Property
    
    Public Property Let Dirtied(boolFrmDirtyIn As Boolean)
        boolFrmDirty = boolFrmDirtyIn
    End Property
    
    Public Property Get Saved() As Boolean
        Saved = boolFrmSaved
    End Property
    
    Public Property Let Saved(boolFrmSavedIn As Boolean)
        boolFrmSaved = boolFrmSavedIn
    End Property
    					
  5. Στο διακομιστήΟ εντοπισμός σφαλμάτωνμενού, κάντε κλικ στο κουμπίΗ μεταγλώττιση της Northwind.
  6. Στο διακομιστήFILEμενού, κάντε κλικ στο κουμπίΑποθήκευση Northwind.
  7. Όταν σας ζητηθεί, αποθηκεύστε τη φόρμα ως frmCustomers.
  8. Ανοίξτε τη φόρμα frmCustomers σε προβολή φόρμας. Σημειώστε ότι η φόρμα συμπληρώνεται με δεδομένα.
  9. Κάντε κάποιες αλλαγές τροποποιώντας μια υπάρχουσα εγγραφή, εισάγοντας ορισμένες νέες εγγραφές και διαγράφοντας ορισμένες εγγραφές.
  10. Κλείστε τη φόρμα. Σημειώστε ότι θα σας ζητηθεί αν θέλετε να δεσμεύσετε όλες τις αλλαγές.
  11. Κάντε κλικ στο κουμπί "Όχι".
  12. Ανοίξτε τη φόρμα σε προβολή φόρμας. Σημειώστε ότι καμία από τις αλλαγές που κάνατε στο βήμα 9 έχουν αποθηκευτεί στη βάση δεδομένων.
  13. Επαναλάβετε τα βήματα 9 και 10.
  14. Όταν σας ζητηθεί να καταχωρήσετε όλες τις αλλαγές, κάντε κλικ στο κουμπίYES.
  15. Ανοίξτε τη φόρμα σε προβολή φόρμας. Σημειώστε ότι όλες οι αλλαγές που πραγματοποιήσατε έχουν αποθηκευτεί στη βάση δεδομένων.

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbmt KB248011 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:248011  (http://support.microsoft.com/kb/248011/en-us/ )