Εμφάνιση ενός μόνο μηνύματος
  #7  
Παλιά 03-12-10, 19:44
Free_Ghost Ο χρήστης Free_Ghost δεν είναι συνδεδεμένος
Όνομα: Χρήστος
Έκδοση λογισμικού 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]).
Γενικά μπορούμε να χρησιμοποιήσουμε ως παραμέτρους όσα χειριστήρια θέλουμε αρκεί να τα γράψουμε με τη σειρά που επιθυμούμε να ψάχνονται.
Στο αρχείο που επισυνάπτω υπάρχει αυτή η υλοποίηση.

Φιλικά/Γιώργος
Όλα αυτά φίλοι μου μπορούμε να τα χρησιμοποιήσουμε όταν υπάρχουν συγκεκριμένα πλαίσια & Πεδία..

Τη γίνεται όμως στην περίπτωση όπου τα στοιχεία τα καταχωρούμε σε μια συνεχόμενη φόρμα, που περιέχει τα παρακάτω πεδία ( [Ημερομηνία] –[ομάδα εργασίας]) ..

Εφόσον θελήσω να δημιουργήσω μια έκθεση όπου θα μου εμφανίζει όλους τους μισθωτούς σε ποια ομάδα είναι αυτή την στιγμή κωλύουμε, πρέπει να συνθέσω έτσι το ερώτημα ώστε να βλέπει την πιο πρόσφατη ημερομηνία στο πεδίο [Ημερομηνία] και να παίρνει τα δεδομένα από το αντίστοιχο πεδίο [ομάδα εργασίας]

Υπάρχει κάποια λύση φίλοι μου, η να
Απάντηση με παράθεση