Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Συναρτήσεις ] Αυτόματη απόδοση τιμής "False" με κριτήρια. (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4738-aytomati-apodosi-timis-false-me-kritiria.html)

dimitrisp 07-11-17 19:17

Αυτόματη απόδοση τιμής "False" με κριτήρια.
 
1 Συνημμένο(α)
Γειά σας.

Στη δειγματική βάση που ανεβάζω, εμπεριέχεται μια Φόρμα, η [tblP] (Κύρια και δευτερεύουσα, με σχέση ένα προς πολλά).

Στην κύρια Φόρμα υπάρχει πεδίο (ENERGOSP), το οποίο δείχνει αν η καθεμία καταχώρηση είναι ενεργή ή όχι.

Στη δευτερεύουσα Φόρμα υπάρχει επίσης ίδιο πεδίο (ISXIS),το οποίο δείχνει αν η καθεμία καταχώρηση ανά γραμμή είναι ενεργή ή όχι.

Με τη φόρτωση της Φόρμας [tblP], έχω τοποθετήσει τον κώδικα [CurrentDb.Execute ("UPDATE qryUnCheck SET qryUnCheck.[ISXIS] = False")],
προκειμένου, σε όσες εκ των εγγραφών η ημερομηνία είναι μικρότερη από την τρέχουσα, τότε το πεδίο [ISXIS] να παίρνει τιμή False.

Ως εδώ όλα καλά... Ο κώδικας λειτουργεί κανονικά.

Όμως, ήθελα συνακόλουθα, όταν όλες οι εγγραφές στη δευτερεύουσα φόρμα [tblA] σε κάποιο [IDP] είναι False τότε η τιμή του πεδίου
[ENERGOSP] να γίνεται αυτόματα και αυτή False.
Για τούτο δημιούργησα το κουμπί εντολής [cmdUpdate] στο οποίο έχω τοποθετήσει κώδικα.( τον οποίο δημιούργησε ο Φίλος του Forum Γιώργος
(Kapetang) για παρόμοιο σκοπό).

Ωστόσο, ο κώδικας δε λειτουργεί για όλο το φάσμα των εγγραφών, δε λειτουργεί μαζικά. Διαπίστωσα ότι, ύστερα από αρκετές δοκιμές,
δίνει την τιμή False στο πεδίο [ENERGOSP] (εφόσον πληρούνται τα προαναφερόμενα κριτήρια) μόνον της εγγραφής η οποία εμφανίζεται
εκείνη τη στιγμή στη φόρμα.

Κατόπιν τούτων, Θα ήθελα τη βοήθειά σας στο ακόλουθο ερώτημα:
Μετά την εκτέλεση του κώδικα με τη φόρτωση της Φόρμας, στις εγγραφές (για καθένα IDP) όπου όλα τα πεδία [ISXIS]
(της δευτερεύουσας Φόρμας) είναι False τότε αυτομάτως και το πεδίο της κύριας Φόρμας " ENERGOSP" να παίρνει τιμή False
(σε όλες τις εγγραφές που πληρούν τα τεθέντα κριτήρια).


Σας ευχαριστώ εκ των προτέρων.

kapetang 08-11-17 15:45

1 Συνημμένο(α)
Καλησπέρα

Δημήτρη, κάνε δοκιμές στο συνημμένο.

Άλλαξα το ερώτημα σε ερώτημα ενημέρωσης, τροποποίησα λίγο τον κώδικα και προσπάθησα να τον περιορίσω.

dimitrisp 08-11-17 21:23

Καλησπέρα.

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

Είμαι ειλικρινά υπόχρεος, σε υπερευχαριστώ Φίλε.

Ωστόσο, θα ήθελα, καταχρηστικά ίσως, να σε ρωτήσω επιπροσθέτως το εξης:

Αν δεν τοποθετήσουμε τον κώδικα στο κουμπί [cmdUpdate], εναλλακτικά σε ποια ιδιότητα τής φόρμας
θεωρείς ότι θα μπορούσαμε να τον τοποθετήσουμε (για περισσότερο αυτοματισμό)?


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

kapetang 09-11-17 13:39

1 Συνημμένο(α)
Καλησπέρα

Δημήτρη, δεν ξέρω τι θέλεις να πετύχεις, αλλά πρέπει να λάβεις υπόψη σου και το εξής:

Το ερώτημα qryUnCheck επιδρά μόνο στις εγγραφές με ημερομηνία < Now().

Αν κάποιος χρήστης αλλάξει (χειροκίνητα) την τιμή του πεδίου ISXIS σε False σε κάποιες εγγραφές με ημερομηνία >=Now(), αυτές θα παραμείνουν False και δε θα γίνουν True, που πιθανόν να θέλεις.

Στη συνημμένη ΒΔ άλλαξα το ερώτημα έτσι ώστε οι εγγραφές με ημερομηνία >=Now() να τσεκάρονται και οι υπόλοιπες να ξετσεκάρονται.

Επίσης άλλαξα τον κώδικα ώστε η ενημέρωση να γίνεται αυτόματα με το άνοιγμα και το κλείσιμο της φόρμας.

Άφησα και την ενημέρωση με το κουμπί, για ακύρωση τυχόν αλλαγών, που δεν ακολουθούν τον κανόνα (Ημερομηνία>=Now True, διαφορετικά False ), κατά τη χρήση της φόρμας, αλλά, ανάλογα με τις ανάγκες σου, μπορείς να το καταργήσεις.

dimitrisp 09-11-17 20:06

Καλησπέρα.

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

Ειδικότερα, διευκρινίζω ότι, το ερώτημα qryUnCheck θέλω να επιδρά μόνο στις εγγραφές με ημερομηνία < Now()
Οπότε και το άφησα ως έχει.

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

Εύχομαι να είσαι πάντα καλά Φίλε μου... Η βοήθειά είναι σου είναι ανεκτίμητη.


Η ώρα είναι 12:58.

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


Search Engine Optimization by vBSEO 3.3.2