Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Προστασία συνδετικών πεδίων φόρμας-υποφόρμας (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/555-prostasia-syndetikon-pedion-formas-ypoformas.html)

mdragon 19-04-10 22:18

Προστασία συνδετικών πεδίων φόρμας-υποφόρμας
 
Καλησπέρα σε όλους,
έχω μία φόρμα που περιέχει μία υποφόρμα και συνδέονται μεταξύ τους με ένα πεδίο π.χ. ημερομηνία.
εάν έχω ήδη καταχωρήσει δεδομένα στην υποφόρμα και από λάθος αλλάξω αρχική ημερομηνία στην φόρμα τα δεδομένα της υποφόρμας μου χάνονται.
Το ερώτημά μου είναι πως μπορώ να αποφύγω την αλλαγή της ημερομηνίας στην φόρμα όταν έχω ήδη κάνει καταχωρήσεις με αυτή την ημερομηνία στην υποφόρμα.


Ευχαριστώ,

Μάρω

Tasos 19-04-10 23:12

Μάρω καλησπέρα!
Στον πίνακα που περιέχει την αρχική ημερομηνία πρόσθεσε ένα πεδίο τύπου Ναι/Όχι
με το όνομα: DateIsLocked.
Κατόπιν πέρασε το και στη φόρμα σου δίπλα στο πεδίο της αρχικής ημερομηνίας.

Έστω το όνομα του πεδίου της αρχικής ημερομηνίας = EntryDates

Στο συμβάν του EntryDates "Πριν την ενημέρωση" βάλε:

Κώδικας:

Private Sub EntryDates_BeforeUpdate(Cancel As Integer)
    If Me.DateIsLocked Then
      Cancel = True
      Me.EntryDates.Undo
    End If
End Sub

και στο συμβάν του EntryDates "Μετά την ενημέρωση" βάλε:

Κώδικας:

Private Sub EntryDates_AfterUpdate()
      Me.DateIsLocked = Not IsNull(Me.EntryDates)
End Sub

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

Θα χρειαστεί να ξετσεκάρεις το DateIsLocked για να μπορέσεις να επεξεργαστείς την ημερομηνία.

Φιλικά

Τάσος

mdragon 20-04-10 15:52

Να σαι καλά Τάσο μου.
Δουλεύει μια χαρά



Μάρω


Η ώρα είναι 11:29.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2