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

Καλησπέρα

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

Δε χρειάζεται η αξία να αποθηκεύεται στον πίνακα.

Μάλιστα, αν αποθηκεύεται, μπορεί να δημιουργήσει και προβλήματα.

Σκέψου την περίπτωση να ανοίξει κάποιος τον πίνακα και στο πεδίο [αξία] να καταχωρήσει (κακόβουλα ή από λάθος) μια τιμή διαφορετική του γινομένου [ποσότητα]*[τιμή].

Πάντως αν επιμένεις να καταχωρείται η αξία στον πίνακα θα πρέπει στη σχετική φόρμα να προσθέσεις τον παρακάτω κώδικα.

Κώδικας:
Private Sub ΠΟΣΟΤΗΤΑ_AfterUpdate()
    If IsNumeric(Me.ΠΟΣΟΤΗΤΑ) And IsNumeric(Me.ΤΙΜΗ) Then
        Me.ΑΞΙΑ = Me.ΠΟΣΟΤΗΤΑ * Me.ΤΙΜΗ
    End If
End Sub

Private Sub ΤΙΜΗ_AfterUpdate()
    If IsNumeric(Me.ΠΟΣΟΤΗΤΑ) And IsNumeric(Me.ΤΙΜΗ) Then
        Me.ΑΞΙΑ = Me.ΠΟΣΟΤΗΤΑ * Me.ΤΙΜΗ
    End If
End Sub
Στον κώδικα αυτό θα πρέπει να αντικαταστήσεις τα ονόματα [ΠΟΣΟΤΗΤΑ], [ΤΙΜΗ] και [ΑΞΙΑ] με τα πραγματικά.

Η αποθήκευση της αξίας θα γίνεται για τις νέες εγγραφές.

Αν θέλεις να αποθηκευτεί και στις παλιές θα πρέπει σε κάθε εγγραφή να προκαλέσεις στο πεδίο [ΠΟΣΟΤΗΤΑ] ή [ΤΙΜΗ] κάποια πλασματική αλλαγή (πχ πληκτρολογώντας ξανά το ίδιο ψηφίο) και να μετακινηθείς σε άλλο πεδίο.

Δοκίμασε τη ΒΔ που επισυνάπτω

Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb CalculaedField.mdb (272,0 KB, 121 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 27-06-12 στις 20:31. Αιτία: Αλλαγή του κώδικα για καλύτερο έλεγχο λαθών
Απάντηση με παράθεση