Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Iff και επιπλέον ορίσματα
Καλήμέρα.... είπα να σας ταλαιπωρήσω λίγο.......... Θέλω να υπολογίσω τις αποζημιώσεις με βάση τον χρόνο υπηρεσίας και το αν είναι ημερομίσθιος ή μισθωτός. Προσπάθησα με την iff αλλά τα ορίσματα που θέλω να βάλω είναι πολλά και δεν τη δέχεται. Παράδειγμα: IIf(([Έτη]=0) And ([Μήνες]<2);0;IIf(([Έτη]=0) And ([Μήνες]>=2 And [Η/Μ]="Η");5;IIf(([Έτη]=0) And ([Μήνες]>=2 And [Η/Μ]="Μ");1;IIf(([Έτη]>1<4 And [Η/Μ]="Μ");2;IIf(([Έτη]<2 And [Η/Μ]="Η");7;IIf(([Έτη]<5 And [Η/Μ]="Η");15;"???")))))) Τι μου προτίνεται? |
#2
| ||||
| ||||
Εαν ειναι μπερδεμενο το σεναριο σου ισως θα επρεπε να κοιταξεις την δημιουργια μιας δικης σου Function μεσο κωδικα με βαση το Select Case.
__________________ http://www.facebook.com/home.php?ref...00000309992857 |
#3
| ||||
| ||||
Αγαπητή Μάρω, Η συνάρτηση συντακτικά είναι σωστή. Πρόσεχε μόνο οι τιμές στο πεδίο [Η/Μ] ("Η" και "M") να είναι και εκεί με ελληνικούς χαρακτήρες. Σου προτείνω τη συνάρτηση Switch (βλ. Βοήθεια Access) που ελέγχεται καλύτερα από την IIf(): Κώδικας: =Switch([Έτη]=0 And [Μήνες]<2;0;[Έτη]=0 And [Μήνες]>1 And [Η/Μ]="Η";5;[Έτη]=0 And [Μήνες]>1 And [Η/Μ]="Μ";1;[Έτη]>1<4 And [Η/Μ]="Μ";2;[Έτη]<2 And [Η/Μ]="Η";7;[Έτη]<5 And [Η/Μ]="Η";15;-1;"???") Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#4
| |||
| |||
Αγαπητέ Τάσο ίσως σε έχω κουράσει αλλά πραγματικά δεν βρίσκω άκρη. Οι εκδοχές που θέλω να χρησιμοποιήσω είναι 42. Όπως καταλαβαίνεις σε όλες τις συναρτήσεις μου βγάζει ότι η συνάρτηση είναι πολύ σύνθετη. Το ίδιο με το switch. Έχεις καμιά άλλη πρόταση? Ευγνώμων Μάρω |
#5
| ||||
| ||||
Αν με κούραζε μια συνάρτηση θα έπρεπε να κάνω άλλη δουλειά Μπορείς να "σπάσεις" τη φόρμα/κολοσσό σε 6 πεδία που θα τα αποκρύψεις. Έτσι θα μπορέσει να τα επεξεργαστείς καλύτερα. Πως; Έστω ότι έχεις δημιουργήσει τα 6 αυτά πεδία με τα ονόματα: Field1, Field2, Field3, Field4, Field5, Field6. Στο Field1 βάλε το πρώτο τμήμα του αρχικού σου τύπου πχ: =Switch([Έτη]=0 And [Μήνες]<2;0;[Έτη]=0 And [Μήνες]>1 And [Η/Μ]="Η"; 5;[Έτη]=0 And [Μήνες]>1 And [Η/Μ]="Μ";1;[Έτη]>1<4 And [Η/Μ]="Μ";2) Στο Field2 βάλε το δεύτερο τμήμα... κοκ. Στο τελευταίο πεδίο (Field6) φρόντισε να αφαιρέσεις το τελευταίο όρισμα ;-1;"???" Κατόπιν, στο πεδίο που θα εμφανίζει το αποτέλεσμα βάλε το παρακάτω: =Switch(Not [Field1] Is Null;[Field1];Not [field2] Is Null;[Field2];Not [field3] Is Null;[Field3];Not [field4] Is Null;[Field4];Not [field5] Is Null;[Field5];Not [field6] Is Null;[Field6];-1;"???") Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
Να ΄σαι καλά βρε Τάσο, νά ΄ξερες πόσο με βοήθησες. Με κακομαθαίνεις και λέω να σε εκμεταλευτώ!!!! Και πάλι ευχαριστώ, Μάρω |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
ΕΠΙΠΛΕΟΝ ΓΡΑΜΜΕΣ ΣΕ ΕΚΘΕΣΗ | Deminio | Access - Ερωτήσεις / Απαντήσεις | 3 | 08-10-09 08:03 |
Η ώρα είναι 09:28.