Forum
ms-office.gr > Forum > Microsoft Office > Visual Basic for Applications (VBA) > [Access - VBA] Διαγραφή με ακύρωση ...ενημέρωσης

Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 08-03-10, 16:56
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 533
Προεπιλογή Διαγραφή με ακύρωση ...ενημέρωσης

Καλησπέρα στην κοινότητα !
Φίλοι μου εντελώς τυχαία 'ανακάλυψα' μια κατάσταση στην Access η οποία χρειάζεται διαχείριση. Όταν είμαστε σε περιβάλλον κάποιας εγγραφής & αλλάξουμε τιμή σε κάποιο (-α) πεδία και στη συνέχεια -έτσι, χωρίς ιδιαίτερο λόγο- πατηθεί το πλήκτρο 'Διαγραφή', η εξέλιξη ειναι περίεργη αρκετά!!! Δείτε το.
Προσπάθησα -κάνοντας χρήση μιας Public μεταβλητής, να ομαλοποιήσω την κατάσταση, ακυρώνοντας -αμα πατηθεί το πλήκτρο 'Διαγραφή' - την ενημέρωση, αλλά δεν μπορώ να ισχυριστώ ότι έλυσα το ζήτημα...
Δημοσιοποιώ το πρόβλημα πιστεύοντας ότι θα βρεθεί μια λύση κομψή, με δυνατότητα ευρείας χρήσης από όλους μας...
Με εκτίμηση
Νίκος Δ.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Dokimi.mdb (236,0 KB, 25 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 08-03-10, 20:07
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 1.157
Προεπιλογή

Νίκο μου καλησπέρα!

Για να διαγραφεί μια εγγραφή θα πρέπει να υπάρχει δηλ. μην είναι Null και να είναι αποθηκευμένη.
Όταν πατήσεις το κουμπί για να διαγράψεις εγγραφή που έχεις επεξεργαστεί χωρίς αυτή να έχει αποθηκευτεί (Dirty) τότε η Access αποθηκεύει πρώτα την εγγραφή για να την αποδεσμεύσει και κατόπιν την διαγράφει.

Ακριβώς σ αυτό το βήμα της αποθήκευσης εξαπολύεται το συμβάν Form_BeforeUpdate() που προκαλεί την αναταραχή αφού ο κώδικας του ακυρώνει την αποθήκευση (Update).

Για να λειτουργήσει ή διαδικασία διαγραφής κανονικά μπορούμε τροποποιήσουμε
τον κώδικα όπως παρακάτω:
Κώδικας:
Option Compare Database
  Option Explicit
  Private diagrafi As Boolean
   
  Private Sub cmdDeleteRecord_Click()
      On Error GoTo Err_cmdDeleteRecord_Click
      diagrafi = True
      DoCmd.RunCommand acCmdSelectRecord
      DoCmd.RunCommand acCmdDeleteRecord
  Exit_cmdDeleteRecord_Click:
      diagrafi = False
      Exit Sub
  Err_cmdDeleteRecord_Click:
      MsgBox Err.Description
      Resume Exit_cmdDeleteRecord_Click
  End Sub
   
  Private Sub Form_BeforeUpdate(Cancel As Integer)
      If diagrafi Then Exit Sub
      If MsgBox("Να καταχωρηθούν οι αλλαγές σε " & [Epiteto] & "?", _
                vbQuestion + vbYesNo, "ΕΛΕΓΧΟΣ") = vbNo Then
          Me.Undo
      Else
          MsgBox "Καταχωρήθηκε !"
      End If
  End Sub
Τα λέμε...

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word
Απάντηση με παράθεση
  #3  
Παλιά 08-03-10, 21:45
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 533
Προεπιλογή

Αγαπητέ μου Τάσο ευχαριστώ.
Απόλυτα κατανοητή η φιλοσοφία της διαχείρισης που προτείνεις. Κατάλαβα το λάθος μου...
Να είσαι καλά...
Νίκος Δ.

Τελευταία επεξεργασία από το χρήστη Meteora : 14-03-10 στις 18:03.
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Ερωτήματα ] Ερώτημα Ενημέρωσης. ΤΖΙΜΗΣ Access - Ερωτήσεις / Απαντήσεις 4 17-08-11 17:54
Ακύρωση λογαριασμού Meteora Outlook - Ερωτήσεις / Απαντήσεις 1 27-12-10 17:25
Πρόβλημα ενημέρωσης πινάκων και διαγραφή ανενεργών εγγραφών πίνακος alex Access - Ερωτήσεις / Απαντήσεις 14 09-12-10 11:05
Πρόβλημα ενημέρωσης πίνακων και διαγραφή ανενεργών εγγράφων πίνακος alex Access - Ερωτήσεις / Απαντήσεις 0 06-12-10 11:49
Eρωτήματα ενημέρωσης sakis Access - Ερωτήσεις / Απαντήσεις 11 17-12-09 22:52


Η ώρα είναι 15:23.