
03-12-10, 19:44
|
| Όνομα: Χρήστος Έκδοση λογισμικού Office: Ms-Office 2010 Γλώσσα λογισμικού Office: Ελληνική | | Εγγραφή: 24-01-2010 Περιοχή: Φλώρινα
Μηνύματα: 164
| |
Παράθεση:
Αρχική Δημοσίευση από kapetang Καλησπέρα σε όλους
Θα ήθελα να μοιραστώ και με τα υπόλοιπα μέλη του φόρουμ κάτι που έμαθα από την ενασχόληση με το πρόβλημα που έθεσε ο Χρήστος, επειδή το θεωρώ χρήσιμο.
Αφορά την αποτίμηση των συναρτήσεων που χρησιμοποιούνται ως προέλευση στοιχείου ελέγχου σε μία φόρμα.
Σύμφωνα με το πρόβλημα η τιμή του πλαισίου κειμένου a6 εξαρτάται από τις τιμές των a1, a2, a3, a4, a5.
Αρχικά στη μονάδα κώδικα της φόρμας δημιούργησα μία συνάρτηση (SetValue), χωρίς ορίσματα (δε χρειάζονταν) και τη χρησιμοποίησα ως προέλευση του πλαισίου κειμένου a6 , πιστεύοντας ότι, όταν γίνονταν αλλαγές στα πλαίσια κειμένου a1, a2, a3, a4, a5, θα γίνονταν αυτόματα (από την access) νέος υπολογισμός της συνάρτησης και το α6 θα εμφάνιζε τη σωστή τιμή.
Δυστυχώς αυτό δε γίνονταν και έτσι αναγκάστηκα να προσθέσω επιπλέον κώδικα σε αντιστοιχία με κάποια συμβάντα. Τελικά διαπίστωσα ότι συνάρτηση επαναϋπολογίζεται αυτόματα, όταν αλλάζουν τα πλαίσια κειμένου, μόνο όταν αυτά είναι παράμετροί της.
Έτσι έδωσα στη συνάρτηση SetValue την παρακάτω μορφή: Κώδικας: Function SetValue(ParamArray x() As Variant) As Variant
Dim i As Integer
SetValue = Null
For i = LBound(x) To UBound(x)
If Not IsNull(x(i)) Then
SetValue = x(i)
Exit For
End If
Next
End Function
Στην προέλευση στοιχείου ελέγχου του a6 θα πρέπει να βάλουμε:
=SetValue([a5];[a4];[a3];[a2];[a1]). Γενικά μπορούμε να χρησιμοποιήσουμε ως παραμέτρους όσα χειριστήρια θέλουμε αρκεί να τα γράψουμε με τη σειρά που επιθυμούμε να ψάχνονται.
Στο αρχείο που επισυνάπτω υπάρχει αυτή η υλοποίηση.
Φιλικά/Γιώργος | Όλα αυτά φίλοι μου μπορούμε να τα χρησιμοποιήσουμε όταν υπάρχουν συγκεκριμένα πλαίσια & Πεδία..
Τη γίνεται όμως στην περίπτωση όπου τα στοιχεία τα καταχωρούμε σε μια συνεχόμενη φόρμα, που περιέχει τα παρακάτω πεδία ( [Ημερομηνία] –[ομάδα εργασίας]) ..
Εφόσον θελήσω να δημιουργήσω μια έκθεση όπου θα μου εμφανίζει όλους τους μισθωτούς σε ποια ομάδα είναι αυτή την στιγμή κωλύουμε, πρέπει να συνθέσω έτσι το ερώτημα ώστε να βλέπει την πιο πρόσφατη ημερομηνία στο πεδίο [Ημερομηνία] και να παίρνει τα δεδομένα από το αντίστοιχο πεδίο [ομάδα εργασίας]
Υπάρχει κάποια λύση φίλοι μου, η να |