| Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| ||||
| ||||
|
Καλησπέρα στην κοινότητα ! Φίλοι μου εντελώς τυχαία 'ανακάλυψα' μια κατάσταση στην Access η οποία χρειάζεται διαχείριση. Όταν είμαστε σε περιβάλλον κάποιας εγγραφής & αλλάξουμε τιμή σε κάποιο (-α) πεδία και στη συνέχεια -έτσι, χωρίς ιδιαίτερο λόγο- πατηθεί το πλήκτρο 'Διαγραφή', η εξέλιξη ειναι περίεργη αρκετά!!! Δείτε το. Προσπάθησα -κάνοντας χρήση μιας Public μεταβλητής, να ομαλοποιήσω την κατάσταση, ακυρώνοντας -αμα πατηθεί το πλήκτρο 'Διαγραφή' - την ενημέρωση, αλλά δεν μπορώ να ισχυριστώ ότι έλυσα το ζήτημα... Δημοσιοποιώ το πρόβλημα πιστεύοντας ότι θα βρεθεί μια λύση κομψή, με δυνατότητα ευρείας χρήσης από όλους μας... Με εκτίμηση Νίκος Δ. |
|
#2
|
|
Νίκο μου καλησπέρα! Για να διαγραφεί μια εγγραφή θα πρέπει να υπάρχει δηλ. μην είναι 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
| ||||
| ||||
|
Αγαπητέ μου Τάσο ευχαριστώ. Απόλυτα κατανοητή η φιλοσοφία της διαχείρισης που προτείνεις. Κατάλαβα το λάθος μου... Να είσαι καλά... Νίκος Δ. Τελευταία επεξεργασία από το χρήστη Meteora : 14-03-10 στις 18:03. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | 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.



Αλλαγή σε γραμμικό τρόπο

