Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Συναρτήσεις ] Iff σύνταξη στα κριτήρια!! (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3867-iff-sintaksi-sta-kritiria.html)

docker 10-10-15 11:11

Iff σύνταξη στα κριτήρια!!
 
Γεια σε όλους.

Προσπαθώ να βάλω κριτήρια σε ένα ερώτημα. Το σκεπτικό μου είναι το εξής: για ποσά άνω των 20 ευρώ να τυπώσει στο κελί 3.50 ευρώ, αλλιώς να τυπώσει 2 ευρώ. Σκέφτηκα λοιπόν να γράψω...

iif(Orders.Deposit>19,99, 3,50, 2,00) αλλά φαίνεται πως μπερδεύεται με τα κόμματα. Όταν τα κάνω τελείες (19.99) το ίδιο.

Η στήλη μου είναι ρυθμισμένη σε currency. Δεν ξέρω πώς θα έπρεπε να το γράψω.

anestaki 10-10-15 12:11

Καλημέρα σε όλους
Για δοκίμασε και έτσι……!
iif(Orders.Deposit>"19,99", "3,50"," 2,00")

anestaki 10-10-15 12:33

Παράθεση:

Αρχική Δημοσίευση από anestaki (Μήνυμα 22119)
Καλημέρα σε όλους
Για δοκίμασε και έτσι……!
iif(Orders.Deposit>"19,99", "3,50"," 2,00")

Λάθος απάντηση
Με αυτό:
mm: IIf([Orders.Deposit]>19,99;3,5;IIf([Orders.Deposit]<19,99;2))

kapetang 10-10-15 13:46

IIf([Orders].[Deposit]>20; 3,5; 2)

Spirosgr 10-10-15 22:33

Καλησπέρα
Αν σας προβληματίζει, η σύνταξη μιας IIF, ειδικά με πολλά κριτήρια,
τότε, καλό είναι, να χρησιμοποιήσετε, την Switch.

Παράδειγμα, βασισμένο στο ζητούμενο:
Έστω πεδίο, με όνομα, iValue.
Το πεδίο, έχει διάφορες τιμές και ζητάμε,
1. αν μια τιμή στο iValue είναι >20 απόδοση 3,5
2. αν <=20 απόδοση 2
Τότε:
Expr1: Switch([iValue]<=20;2;[iValue]>20;3,5)

Η Switch, είναι ακόμα πιο χρήσιμη, αν έχουμε ως κριτήρια:
>20 .... 5
>17......4
>14......3
>11......2
>8........1
<=8......0

docker 11-10-15 10:15

Σπύρο, πολύ χρήσιμη η SWITCH

Σε ευχαριστώ πολύ για το παράδειγμα. Kapetang και Anestaki ευχαριστώ πολύ εξίσου.

Anestaki πληροφοριακά με " δεν δούλεψαν τα ποσά. ΕΞακολουθούσε να μου βγάζει error! Με τον δεύτερο τρόπο δούλεψε. Δεν καταλαβαίνω γιατί όμως θα έπρεπε να ξαναγράψω την iff μέσα στην παρένθεση. Παρόλα αυτά δούλεψε.

Spirosgr 11-10-15 12:28

Μια παρατήρηση ...
Στο post # 3 ο Γιώργος (anestaki) προτείνει αυτό:
mm: IIf([Orders.Deposit]>19,99;3,5;IIf([Orders.Deposit]<19,99;2))

Εκτός από την εσφαλμένη σύνταξη, (έστω ότι είναι σωστά διατυπωμένο)
Αν η τιμή είναι ακριβώς 19,99 τι θα αποδώσει η συνάρτηση;

Άρα, Γιώργο σε παρόμοιες περιπτώσεις, θα βάζεις και ένα = όπου χρειάζεται...


Η ώρα είναι 18:45.

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


Search Engine Optimization by vBSEO 3.3.2