Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Μορφοποίηση υπο όρους (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2116-morfopoiisi-ypo-oroys.html)

alex 13-10-12 22:28

Μορφοποίηση υπο όρους
 
1 Συνημμένο(α)
Καλησπέρα

Εχω φτιάξει ένα πλάνο για απουσίες για να βλέπω ενδεικτικά ποιός λείπει.
Θέλω απο τον πίνακα StudentT να εμφανίζει με πράσινο χρώμα σε όλα τα πλαίσια της φόρμας (Plano_Apusion) τους παρόντες.
Παρόντες είναι αυτοί που( το πεδίο Αttentdance είναι τσεκαρισμένο).
Με κόκκινο χρώμα τους απόντες όπου δεν είναι τσεκαρισμένο το πεδίο Αttentdance.
Βασικά έχω κάνει την φόρμα με το πλάνο.
Εχω κάνει και μιά φόρμα Categories με τα δύο χρώματα.
Μήπως γνωρίζει κάποιο μέλος πως μπορώ να εμφανίζω στη φόρμα τα χρώματα;
Στέλνω κάποιο δείγμα της βάσης

Φιλικά/Αλέξανδρος

Tasos 14-10-12 01:42

1 Συνημμένο(α)
Καλημέρα Αλέξανδρε!

Μπορείς να δεις στο συνημμένο μια λύση χωρίς VBA.

Πιστεύω ότι θα σε καλύψει.

Καλή συνέχεια!

Τάσος

alex 14-10-12 08:08

Καλημέρα Τάσο !

Για μια ακόμη φορά πραγματικά ζωγράφισες.
Ακριβώς αυτό ήθελα.Βέβαια σε ευχαριστώ για τη βοήθεια και για το χρόνο που διέθεσες.Δεν έχω άλλα λόγια να σε ευχαριστήσω μου έλυσες τα χέρια.
Καλή σου μέρα

Αλέξανδρος

gmax 15-10-12 08:54

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από Tasos (Μήνυμα 12484)
Καλημέρα Αλέξανδρε!

Μπορείς να δεις στο συνημμένο μια λύση χωρίς VBA.

Πιστεύω ότι θα σε καλύψει.

Καλή συνέχεια!

Τάσος

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

Tasos 15-10-12 12:10

Αλέξανδρε, Γιώργο καλημέρα!

Αλέξανδρε χαίρομαι που βοήθησα!

Γιώργο, στο παράδειγμα που ανέβασα στο προηγούμενο μήνυμα μου, μπορείς να χρησιμοποιήσεις τον
παρακάτω κώδικα σε μια απλή λειτουργική μονάδα για να τροποποιήσεις την Προέλευση Στοιχείου ελέγχου των πεδίων του υποσέλιδου της φόρμας
(για να μην γράφεις στα 31 πεδία χειροκίνητα).

Ο τροποποιημένος τύπος στην Προέλευση Στοιχείου ελέγχου των πεδίων επιστρέφει ημερομηνία μόνο όταν η δεύτερη υπάρχει στον πίνακα.

Κώδικας:

Option Compare Database
Option Explicit
Sub SetFieldFormulas()
    Dim ctrl As Access.Control, i As Integer
    DoCmd.OpenForm "Plano_Apusion", acDesign
    For Each ctrl In Forms!Plano_Apusion.Section(2).Controls
        If Len(ctrl.Name) < 4 And Left(ctrl.Name, 1) = "D" Then
            If TypeOf ctrl Is Access.TextBox Then
                i = i + 1
                ctrl.ControlSource = "=IIf(Nz(Dlookup(""[AttendanceID]""" & _
                ",""[AttendanceT]"",""[AttendanceDate] = #"" & Format(DateSerial([cboEtos],[FraMonths]," & _
                i & "),""m/d/yyyy"") & ""#""),0)=0,Null,DateSerial([cboEtos],[FraMonths]," & i & "))"
            End If
        End If
    Next
    'Αποθήκευσε τις αλλαγές
End Sub

Καλή συνέχεια!

Τάσος

gmax 15-10-12 15:51

Τάσο σ' ευχαριστώ για την απάντηση, αλλά δεν κατάλαβα τίποτα. Άλλωστε οι γνώσεις μου από κώδικες περιορίζονται στο If αυτό = τόσο Then εκείνο = κάτι. Πάντως αυτό που ζήτησα δεν είναι και τόσο σημαντικό για να επιμείνω. Για άλλη μια φορά ευχαριστώ και σένα και όλους όσους στηρίζουν αυτό το φόρουμ.
Φιλικά Γιώργος

Tasos 15-10-12 17:16

1 Συνημμένο(α)
Αγαπητέ Γιώργο,
Τα πεδία Τ1, Τ2, Τ3, ..... Τ31 στη λεπτομέρεια της φόρμας θα επιστρέψουν την τιμή 0 ή -1 (True ή False)
μόνο αν τα αντίστοιχα πεδία στο υποσέλιδο της φόρμας δεν είναι Null.

Διαφορετικά θα είναι Null και κατά συνέπεια δεν θα "χρωματιστούν" από τη μορφοποίηση υπό όρους που τους έχει οριστεί.

Με άλλα λόγια ένα πεδίο της λεπτομέρειας θα πάρει τιμή και κατά συνέπεια χρώμα αν το αντίστοιχο του πεδίο στο υποσέλιδο περιέχει μια ημερομηνία.

Άρα, αυτό που μένει να κάνουμε είναι να τροποποιήσουμε τον τύπο στα πεδία του υποσέλιδου (D1, D2, D3, ..... D31)
έτσι ώστε να μας επιστρέφει την ημερομηνία πχ. 01/10/2012 μόνο όταν αυτή υπάρχει στον πίνακα.

Έχουμε λοιπόν:

Για το πεδίο D1 τον τύπο:
Κώδικας:

=IIf(Nz(DLookUp("[AttendanceID]";"[AttendanceT]";"[AttendanceDate] = #" &
Format(DateSerial([cboEtos];[FraMonths];1);"μ/η/αααα") & "#");0)=0;Null;DateSerial([cboEtos];[FraMonths];1))

Για το πεδίο D1 τον τύπο:
Κώδικας:

=IIf(Nz(DLookUp("[AttendanceID]";"[AttendanceT]";"[AttendanceDate] = #" &
Format(DateSerial([cboEtos];[FraMonths];2);"μ/η/αααα") & "#");0)=0;Null;DateSerial([cboEtos];[FraMonths];2))

κοκ.... όπου οι κόκκινοι αριθμοί είναι οι μέρες του μήνα.

Για να μην χρειαστεί να κάνεις όλη αυτή τη δουλειά χειροκίνητα σε 31 πεδία σου έστειλα τον κώδικα στο προηγούμενο μου μήνυμα.

Σου επισυνάπτω ένα αρχείο/παράδειγμα όπου χρωματίζονται τα πεδία εκείνα μόνο όταν υπάρχει η αντίστοιχη ημερομηνία ( στην περίπτωση μας 15/10/2012).

Φιλικά / Τάσος

gmax 16-10-12 07:35

Καλημέρα,
Τάσο ευχαριστώ πολύ! Είσαι άψογος!


Η ώρα είναι 07:29.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2