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

Καλησπέρα στην παρέα

Στο αρχείο που επισυνάπτεται γίνεται μια προσπάθεια υλοποίησης μιας ιδέας του Γιάννη (nisgia)
Συγκεκριμένα στην κεφαλίδα της φόρμας, που εμφανίζει τους εργαζόμενους, προστέθηκε ένα χειριστήριο επιλογής ημερομηνίας και ένα κουμπί για την εφαρμογή ή ακύρωση ενός φίλτρου.
Με την εφαρμογή του φίλτρου εμφανίζονται μόνο οι διαθέσιμοι για την επιλεγείσα ημερομηνία εργαζόμενοι (αυτοί που δε δούλεψαν ίδια μέρα το τελευταίο 15/ημερο), ενώ με την ακύρωσή του όλοι.
Για τη διαμόρφωση της τιμής του φίλτρου χρησιμοποιείται το βοηθητικό ερώτημα
Κώδικας:
SELECT DISTINCT ΕΡΓΑΖΟΜΕΝΟΙ.*
FROM ΕΡΓΑΖΟΜΕΝΟΙ INNER JOIN ΕΡΓΑΣΙΑ ON ΕΡΓΑΖΟΜΕΝΟΙ.ΚΩΔ_ΕΡΓ=ΕΡΓΑΣΙΑ.ΚΩΔ_ΕΡΓΑΖΟΜΕΝΟΥ
WHERE (((ΕΡΓΑΣΙΑ.[ΗΜΕΡΟΜΗΝΙΑ ΕΓΑΣΙΑΣ]) Between DateAdd("d",-15,Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8) And
 DateAdd("d",-1,Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8)) And 
((Format([ΗΜΕΡΟΜΗΝΙΑ ΕΓΑΣΙΑΣ],"dddd"))=Format(Forms!ΕΡΓΑΖΟΜΕΝΟΙ!DTPicker8,"dddd")));
Επίσης για την εφαρμογή και ακύρωση του φίλτρου χρησιμοποιείται ο παρακάτω κώδικας.
Κώδικας:
Private Sub cmdOpenReport_Click()
    Me.Filter = "[ΕΡΓΑΖΟΜΕΝΟΙ]![ΚΩΔ_ΕΡΓ] Not In (select  [qryFilter]![ΚΩΔ_ΕΡΓ] from [qryFilter])"
    Me.FilterOn = Me.cmdOpenReport.Caption = "Εμφάνιση διαθέσιμων"
    If Me.FilterOn Then
        Me.cmdOpenReport.Caption = "Εμφάνιση όλων"
    Else
        Me.cmdOpenReport.Caption = "Εμφάνιση διαθέσιμων"
    End If
End Sub

Private Sub Form_Load()
    Me.Filter = ""
End Sub
Ανεξάρτητα από την εξαφάνιση του NIC, που έθεσε το θέμα, επειδή παρουσιάζει γενικότερο ενδιαφέρον, πιστεύω ότι του αξίζει μια πιο ολοκληρωμένη προσέγγιση.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb NICmdb2.mdb (232,0 KB, 61 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 12-10-10 στις 17:08. Αιτία: κάποιοι χαρακτήρες αλλαξαν
Απάντηση με παράθεση