Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Φόρμα με υποφόρμα- Αποθήκευση κύριας μόνο πατώντας ένα συγκεκριμένο κουμπί

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

 

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
Prev Προηγούμενο μήνυμα   Επόμενο Μήνυμα Next
  #1  
Παλιά 25-06-17, 15:59
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 01-10-2014
Μηνύματα: 13
Προεπιλογή Φόρμα με υποφόρμα- Αποθήκευση κύριας μόνο πατώντας ένα συγκεκριμένο κουμπί

Καλησπέρα παιδιά!
Ζητάω την βοήθεια σας για έχω πραγματικά απελπιστεί. Στόχος μου είναι ο χρήστης να προχωράει σε Αποθήκευση ΜΟΝΟ αν πατήσει ένα συγκεκριμένο κουμπί.
Όταν θέλω να επεξεργαστώ η να καταχωρίσω δεδομένα ανοίγω την ανάλογη φόρμα (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
Όλα καλά μέχρι εδώ. Το πράγμα όμως κολλάει όταν στην κύρια αυτή φόρμα προσθέσω μια υποφόρμα. Τότε μόλις ο χρήστης πατήσει πάνω στην υποφόρμα η access πάει να προχωρήσει αυτόματα σε αποθήκευση τις κύριας( αν βέβαιά η ιδιότητα Dirty της κύριας είναι false). Αυτό έχει σαν συνέπια να χτυπήσουν κατά σειρά τα ακόλουθα Events: Form_BeforeUpdate -> Form_AfterUpdate ->SubForm_Enter . Οπότε έχω τα εξής προβλήματα:

1) Δεν μπορώ να βρω πότε ο χρήστης πατάει πάνω στην υποφόρμα καθώς το OnEnter Event του SubForm Control χτυπάει μετά το BeforeUpdate τις κύριας φόρμας
2) Ακόμα και αν εντοπίσω πότε ο χρήστης πατάει πάνω στην φόρμα, αν ακυρώσω την αποθήκευση (Form_BeforeUpdate->Cancel=true) η access δεν μπαίνει πότε στην υποφόρμα.

Θέλω να επισημάνω ότι αυτό συμβαίνει είτε η υποφόρμα είναι συνδεδεμένη με την κύρια είτε ΔΕΝ ΕΙΝΑΙ ΣΥΝΔΕΔΕΜΕΝΗ.
Πραγματικά έχω απελπιστεί, νομίζω ότι με την access είναι απαγορευτικός ο δημοφιλέστερος τρόπος αποθήκευσης….. δηλαδή μόνο όταν πατήσεις σε ένα συγκεκριμένο κουμπί. Ζητάω την βοήθεια σας να δω πως αντιμετωπίζετε παρόμοια κατάσταση
Συνημμένα Αρχεία
Τύπος Αρχείου: zip BoundFormWithSub_SaveButton.zip (50,7 KB, 15 εμφανίσεις)
Απάντηση με παράθεση
 


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

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


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

Θέμα Δημιουργός 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


Η ώρα είναι 09:37.