Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Ερωτήματα ] IIF με χρήση τελεστή πεδίο τύπου Ναι/Όχι (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1717-iif-me-xrisi-telesti-pedio-tipoy-nai-oxi.html)

Φαίη 13-03-12 12:41

IIF με χρήση τελεστή πεδίο τύπου Ναι/Όχι
 
Καλησπέρα. Παρακαλώ χρειάζομαι βοήθεια στην σύνταξη της συνάρτησης IIF.
Θέλω μέσα στο Πεδίο με όνομα "Ποσό εγγύησης 1" να εισάγω συνάρτηση η οποία θα ελέγχει εάν το πεδίο "Επιστράφηκε" το οποίο είναι τύπου Ναι/Όχι έχει επιλεγεί ή όχι. Σε περίπτωση που θα είναι επιλεγμένο να εμφανίζει τον αριθμό μηδέν ενώ για όσο δεν θα είναι επιλεγμένο να επιτρέπει στον χρήστη να εισάγει ότι ποσό θέλει μέσα στο "Ποσό εγγύησης 1".
Παρακαλώ όποιος μπορεί όσο πιο γρήγορα να μου απαντήσει γιατί έχω να παραδώσω μία εργασία και έχω κολλήσει απίστευτα σε αυτό!
Ευχαριστώ!!!

Tasos 13-03-12 15:33

Αγαπητή Φαίη καλωσόρισες στην παρέα μας!

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

Κάτι τέτοιο μπορεί να επιτευχθεί μόνο προγραμματιστικά.

Σύμφωνα με το ζητούμενο σου, θέλεις να επιτρέπεται στο χρήστη να καταχωρεί στο πεδίο "Ποσό εγγύησης 1" όταν το πεδίο "Επιστράφηκε" δεν έχει τσεκαριστεί.

Τι θα περιέχει το "Ποσό εγγύησης 1" όταν το πεδίο "Επιστράφηκε" έχει
τσεκαριστεί;

Αν η τιμή του πεδίου "Ποσό εγγύησης 1" θα αποθηκεύεται σε πίνακα τότε
θα μπορούσαμε να σου προτείνουμε μια λύση.

Περιμένουμε νέα σου.

Τάσος

kapetang 13-03-12 15:35

Καλησπέρα

Φαίη, καλωσόρισες στην παρέα του φόρουμ.

Αυτό που ζητάς, με συνάρτηση, δε γίνεται.

Σε πεδίο που υπάρχει τύπος η access δεν επιτρέπει να πληκτρολογούμε και δεδομένα.

Μπορείς να προσομοιώσεις το ζητούμενο προσθέτοντας στη φόρμα τον παρακάτω κώδικα.

Κώδικας:

Option Compare Database
Option Explicit

Private Sub Form_Current()
    If Me.NewRecord Then
        Me.Ποσό_εγγύησης_1.Locked = False
    Else
        If Me.Επιστράφηκε Then
            Me.Ποσό_εγγύησης_1.Locked = True
        Else
            Me.Ποσό_εγγύησης_1.Locked = False
        End If
    End If
End Sub

Private Sub Επιστράφηκε_AfterUpdate()
    If Me.Επιστράφηκε Then
        Me.Ποσό_εγγύησης_1 = 0
        Me.Ποσό_εγγύησης_1.Locked = True
    Else
        Me.Ποσό_εγγύησης_1.Locked = False
    End If
End Sub

Κάνε δοκιμές και ενημέρωσε το φόρουμ, αν καλύφτηκες

Φιλικά/Γιώργος

kapetang 13-03-12 18:55

Καλησπέρα

Η ενεργοποίηση και απενεργοποίηση του πεδίου «Ποσό εγγύησης 1» μπορεί να γίνει και χωρίς κώδικα χρησιμοποιώντας την μορφοποίηση υπό όρους.

Για να την εφαρμόσουμε, ακολουθούμε τα βήματα:

1. Στη σχεδίαση της φόρμας με επιλεγμένο το πλαίσιο κειμένου «Ποσό εγγύησης 1» πατούμε το κουμπί της κορδέλας «Μορφοποίηση υπό όρους» (Conditional).

2. Στο πτυσσόμενο πλαίσιο επιλέγουμε «Έκφραση» (Expresion is) και δίπλα στο πλαίσιο κειμένου γράφουμε: [Επιστράφηκε].

3. Πατούμε το κουμπί δεξιά «Ενεργοποίηση» (Enabled), ώστε το πλαίσιο κειμένου να απενεργοποιείται όταν η συνθήκη είναι αληθής και το OK, για να κλείσει το παράθυρο της μορφοποίησης υπό όρους.

Για να παίρνει το πλαίσιο κειμένου «Ποσό εγγύησης 1» τη μηδενική τιμή, όταν το «Επιστράφηκε» είναι τσεκαρισμένο, χρειάζεται να προστεθεί στη φόρμα ο κώδικας.

Κώδικας:

Private Sub Επιστράφηκε_AfterUpdate()
    If Me.Επιστράφηκε Then Me.Ποσό_εγγύησης_1 = 0
End Sub

Τη λύση αυτή τη θεωρώ καλύτερη από την προτεινόμενη στο προηγούμενο μήνυμά μου.

Φιλικά/Γιώργος

Φαίη 14-03-12 10:23

Μορφοποίηση υπό όρους η λύση για το ζητούμενο
 
Χρησιμοποίησα την δεύτερη πρότασή σου και λειτουργεί τέλεια. Ευχαριστώ Πολύ Γιώργο για την άμεση απάντησή σου!
Προχωρώντας στην ίδια άσκηση αντιμετωπίζω και κάποιες ακόμη δυσκολίες. Θα τις γράψω σε ένα νέο θέμα.
Ευχαριστώ πολύ και πάλι για την πολύτιμη βοήθειά σου.:worthy:


Η ώρα είναι 17:25.

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


Search Engine Optimization by vBSEO 3.3.2