Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Iff και επιπλέον ορίσματα

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 11-03-10, 12:44
Όνομα: Μάρω
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 09-03-2010
Περιοχή: Αθήνα
Μηνύματα: 287
Προεπιλογή 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  
Παλιά 11-03-10, 12:53
Το avatar του χρήστη editolis
Super Moderator
Όνομα: Τολης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-01-2010
Περιοχή: ATHENS-GREECE
Μηνύματα: 180
Προεπιλογή

Εαν ειναι μπερδεμενο το σεναριο σου ισως θα
επρεπε να κοιταξεις την δημιουργια
μιας δικης σου Function μεσο κωδικα με
βαση το Select Case.
Απάντηση με παράθεση
  #3  
Παλιά 11-03-10, 15:39
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Αγαπητή Μάρω, Η συνάρτηση συντακτικά είναι σωστή.

Πρόσεχε μόνο οι τιμές στο πεδίο [Η/Μ] ("Η" και "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  
Παλιά 11-03-10, 16:42
Όνομα: Μάρω
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 09-03-2010
Περιοχή: Αθήνα
Μηνύματα: 287
Προεπιλογή

Αγαπητέ Τάσο
ίσως σε έχω κουράσει αλλά πραγματικά δεν βρίσκω άκρη.
Οι εκδοχές που θέλω να χρησιμοποιήσω είναι 42. Όπως καταλαβαίνεις σε όλες τις συναρτήσεις μου βγάζει ότι η συνάρτηση είναι πολύ σύνθετη.
Το ίδιο με το switch.
Έχεις καμιά άλλη πρόταση?

Ευγνώμων
Μάρω
Απάντηση με παράθεση
  #5  
Παλιά 11-03-10, 18:04
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Αν με κούραζε μια συνάρτηση θα έπρεπε να κάνω άλλη δουλειά

Μπορείς να "σπάσεις" τη φόρμα/κολοσσό σε 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  
Παλιά 11-03-10, 23:03
Όνομα: Μάρω
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 09-03-2010
Περιοχή: Αθήνα
Μηνύματα: 287
Προεπιλογή

Να ΄σαι καλά βρε Τάσο, νά ΄ξερες πόσο με βοήθησες.
Με κακομαθαίνεις και λέω να σε εκμεταλευτώ!!!!

Και πάλι ευχαριστώ,
Μάρω
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
ΕΠΙΠΛΕΟΝ ΓΡΑΜΜΕΣ ΣΕ ΕΚΘΕΣΗ Deminio Access - Ερωτήσεις / Απαντήσεις 3 08-10-09 08:03


Η ώρα είναι 09:28.