Εμφάνιση ενός μόνο μηνύματος
  #10  
Παλιά 07-03-12, 01:08
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα σε όλους!

Σάκη ο κώδικας που υπάρχει στο μήνυμα σου:
Κλείνει την αρχική φόρμα "Pelates".
Ανοίγει τη φόρμα "Edit_Pelates" με κριτήριο το ID της τρέχουσας εγγραφής της αρχικής
("Pelates") που το έχεις βάλει προηγουμένως στη μεταβλητή stLinkCriteria.

Ο δικός μου κώδικας δεν κάνει ακριβώς τα ίδια με τον δικό σου.

Τι κάνει ο κώδικας αυτός :

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

Αποθηκεύει τυχόν μη αποθηκευμένη εγγραφή για να μπορέσει να την εμφανίσει στη φόρμα "Edit_Pelates".

Ανοίγει τη φόρμα "Edit_Pelates" σε παράθυρο διαλόγου αποκλείοντας έτσι κάθε
ενέργεια σε οποιοδήποτε άλλο σημείο της εφαρμογής εκτός από την ίδια τη φόρμα.

Παράλληλα, επειδή φόρμα "Edit_Pelates" σε παράθυρο διαλόγου, ο κώδικας που την άνοιξε διακόπτεται και θα συνεχίζει να εκτελείται μόνο όταν εκείνη κλείσει.

Στη συνέχεια της εκτέλεσης του κώδικα θα γίνει ανανέωση των δεδομένων της φόρμας "Pelates" και αν έχει δημιουργηθεί νέα εγγραφή θα την επιλέξει.

Αν στη φόρμα εφαρμόζεται μια ταξινόμηση σε κάποιο πεδίο τότε δεν είναι απαραίτητο η τελευταία εγγραφή που καταχωρήθηκε να βρίσκεται στο τέλος.

Με γνώμονα τα παραπάνω και μην γνωρίζοντας τον τρόπο που περιορίζεις την επεξεργασία της αρχικής φόρμας, αλλά και τη δόμηση της βάσης,
σου έστειλα όπως είπα αυτόν τον "γενικευμένο κώδικα".

Όσο για το φίλτρο που δεν θέλεις να εφαρμόζεται στη φόρμα "Edit_Pelates" θα πρέπει να
τροποποιηθεί ο κώδικας στη φόρμα "Pelates" αλλά και να προστεθεί ο παρακάτω κώδιικας στη φόρμα "Edit_Pelates":

Κώδικας:
Private Sub Form_Load()
    Dim rs As Object, CurrentID As Long
    CurrentID = Nz(Me.OpenArgs)
    If CurrentID = 0 Then
        DoCmd.GoToRecord , , acNewRec
    Else
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[kwdikos_pelati] = " & CurrentID
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
        rs.Close
    End If
End Sub
Στο συνημμένο μπορείς να δεις ένα παράδειγμα.


Καλή συνέχεια!

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb AccOpenEditForm.mdb (252,0 KB, 205 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση