| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλησπέρα παιδιά! Ζητάω την βοήθεια σας για έχω πραγματικά απελπιστεί. Στόχος μου είναι ο χρήστης να προχωράει σε Αποθήκευση ΜΟΝΟ αν πατήσει ένα συγκεκριμένο κουμπί. Όταν θέλω να επεξεργαστώ η να καταχωρίσω δεδομένα ανοίγω την ανάλογη φόρμα (Single Form) στην επιθυμητή εγράφη. Στην φόρμα αυτή έχω απενεργοποιήσει. τα Navigation buttons. Επίσης θέτω την ιδιότητα Cycle= Current Page. Έτσι ο μόνος τρόπος για να αποθηκευτή η εγγραφή είναι να κλίσεις την φόρμα από το κουμπί [x] πάνω δεξιά. Προσθέτοντας τώρα εγώ δυο ακόμα κουμπιά cmdSave και cmdCancel και με το παρακάτω κώδικα κατάφερνα και προχωρούσα σε Αποθήκευση μόνο όταν ο χρήστης πατούσε το κουμπί cmdSave. Κώδικας: Private saveFlage As Boolean
Private Sub cmdSave_Click()
Dim strMsg As String
strMsg = "Είστε βέβαιος οτι Θέλετε να προχωρήσετε σε Αποθήκευση;"
If MsgBox(strMsg, vbExclamation + vbYesNo + vbDefaultButton2, "Save") = vbYes Then
saveFlage = True
Me.Dirty = False '<-Apothikeusi
DoCmd.Close acForm, Me.Name
End If
End Sub
Private Sub cmdCancel_Click()
If Me.Dirty = True Then
Me.Undo
End If
DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If saveFlage = False Then 'Periptosi pou patame to Close Button [x] pano deksia
If Me.Dirty = True Then
MsgBox "Η καρτέλα Θα κλείσει χωρίς Αποθήκευση!", vbExclamation + vbOKOnly, "Close"
Me.Undo
End If
End If
End Sub
1) Δεν μπορώ να βρω πότε ο χρήστης πατάει πάνω στην υποφόρμα καθώς το OnEnter Event του SubForm Control χτυπάει μετά το BeforeUpdate τις κύριας φόρμας 2) Ακόμα και αν εντοπίσω πότε ο χρήστης πατάει πάνω στην φόρμα, αν ακυρώσω την αποθήκευση (Form_BeforeUpdate->Cancel=true) η access δεν μπαίνει πότε στην υποφόρμα. Θέλω να επισημάνω ότι αυτό συμβαίνει είτε η υποφόρμα είναι συνδεδεμένη με την κύρια είτε ΔΕΝ ΕΙΝΑΙ ΣΥΝΔΕΔΕΜΕΝΗ. Πραγματικά έχω απελπιστεί, νομίζω ότι με την access είναι απαγορευτικός ο δημοφιλέστερος τρόπος αποθήκευσης….. δηλαδή μόνο όταν πατήσεις σε ένα συγκεκριμένο κουμπί. Ζητάω την βοήθεια σας να δω πως αντιμετωπίζετε παρόμοια κατάσταση |
|
#2
| |||
| |||
|
Καλησπέρα σε όλους. Γιάννη μπορείς να δοκιμάσεις και το εξής: Κώδικας: Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not (Me.NewRecord) Then
Exit Sub
End If
End Sub
Τελευταία επεξεργασία από το χρήστη nasos23 : 25-06-17 στις 21:02. Αιτία: Διόρθωση |
|
#3
| |||
| |||
|
Νάσο σε ευχαριστώ για την απάντηση. Δεν βλέπω όμως πως μπορεί να βοηθήσει η πρόταση σου.Μάλλον τα είπα μπερδεμένα ποιο πάνω. Αυτό που στην ουσία περιέγραψα είναι ότι για να εισέλθουμε σε μια υποφορμα η Access αυτόματα αποθηκεύει την κύρια φόρμα. Αν με κάποιο τρόπο εμείς ακυρώσουμε την αποθήκευση της κύριας τότε η Access ΔΕΝ θα μας αφήσει ποτέ να εισέλθουμε στην υποφορμα. Τουλάχιστον αυτό έχω καταλάβει εγώ. Το ζητούμενο μου λοιπόν είναι πώς να εισέλθω στην υποφορμα χωρίς να αποθηκευτεί η Κύρια φόρμα. Παράδειγμα: Έστω ότι εχουμε μια κύρια φόρμα η οποία περιέχει μια υποφορμα. Η κύρια είναι Bound. Η υποφορμα δεν μας ενδιαφέρει αν είναι συνδεδεμένη η όχι με την κύρια. Έστω επίσης δεν έχουμε εισάγει κανένα κώδικα σε καμία από τις δυο φόρμες. 1) Ανοίγουμε την κύρια φόρμα σε μια συγκεκριμένη εγγραφή και αλλάζουμε την τιμή κάποιου παιδιού. Η ιδιότητα τις Dirty γίνεται True.Δες σε παρακαλώ το συνημμένο |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Φόρμες ] Κουμπί εύρεσης σε φόρμα που περιέχει δευτερεύουσα φόρμα | sakis297 | Access - Ερωτήσεις / Απαντήσεις | 2 | 21-11-14 19:23 |
| [ Φόρμες ] ΚΟΥΜΠΙ ΕΠΙΛΟΓΗΣ ΣΕ ΥΠΟΦΟΡΜΑ | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 3 | 09-11-14 19:26 |
| [ Φόρμες ] Προσθήκη νέας εγγραφής μόνο με κουμπί | Χρήστος | Access - Ερωτήσεις / Απαντήσεις | 11 | 23-06-13 21:45 |
| [ Υποφόρμες ] Εμφάνιση Μόνο τελευταίας εγγραφής σε συνεχή φόρμα | wanaka | Access - Ερωτήσεις / Απαντήσεις | 2 | 09-02-12 19:15 |
Η ώρα είναι 11:13.


Υβριδικός τρόπος

