Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 09-08-11, 08:56
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα
Η προσθήκη σε πίνακες υπολογιζόμενων πεδίων (πεδίων που οι τιμές τους μπορούν να υπολογιστούν από τις τιμές άλλων πεδίων) παραβιάζει τους κανόνες σωστής σχεδίασης των σχεσιακών βάσεων δεδομένων.
Δεν πρέπει να υπάρχουν υπολογιζόμενα πεδία στους πίνακες:
1. Επειδή είναι περιττά. Χωρίς να υπάρχουν στους πίνακες, μπορούμε να εμφανίσουμε τις τιμές τους σε αδέσμευτα στοιχεία ελέγχου φορμών και εκθέσεων, αλλά και σε ερωτήματα.
2. Καταναλώνουν χώρο στο σκληρό δίσκο.
3. Είναι επικίνδυνα. Μπορούν να παρουσιάζουν τιμές που δε συμφωνούν με τις υπολογιζόμενες. Για παράδειγμα ένας χρήστης (κακόπιστος ή άπειρος) μπορεί να ανοίξει τον πίνακα σε προβολή φύλλου δεδομένων και να κάνει αλλαγές στα πεδία [ΑΡΧΙΚΟΣ ΧΡΟΝΟΣ], [ΤΕΛΙΚΟΣ ΧΡΟΝΟΣ] και [ΔΙΑΦΟΡΑ] με αποτέλεσμα η τιμή του πεδίου [ΔΙΑΦΟΡΑ] να διαφέρει από τη διαφορά των δύο άλλων.
4. Απαιτούν περισσότερο και δυσκολότερο κώδικα για το χειρισμό τους.
Ελπίζω να σε έπεισα, αλλά για την περίπτωση που ακολουθήσεις άλλο δρόμο:
1. Στη φόρμα στο στοιχείο ελέγχου «ΔΙΑΦΟΡΑ» διέγραψε τον τύπο και σύνδεσέ το με το πεδίο [ΔΙΑΦΟΡΑ] του πίνακα.
2. Στη φόρμα πρόσθεσε και τον κώδικα
Κώδικας:
Private Sub ΑΡΧΙΚΟΣ_ΧΡΟΝΟΣ_Exit(Cancel As Integer)
    Me.ΔΙΑΦΟΡΑ = Diafora(Me.ΑΡΧΙΚΟΣ_ΧΡΟΝΟΣ, Me.ΤΕΛΙΚΟΣ_ΧΡΟΝΟΣ)
End Sub

Private Sub ΤΕΛΙΚΟΣ_ΧΡΟΝΟΣ_Exit(Cancel As Integer)
    Me.ΔΙΑΦΟΡΑ = Diafora(Me.ΑΡΧΙΚΟΣ_ΧΡΟΝΟΣ, Me.ΤΕΛΙΚΟΣ_ΧΡΟΝΟΣ)
End Sub
Φιλικά/Γιώργος
Απάντηση με παράθεση