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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 06-04-11, 12:16
deminio
Guest
 
Μηνύματα: n/a
Προεπιλογή Σχετικα με την δομηση εκφρασεων σε ερωτημα

Παιδια καλησπερα ,
Εχω φτιαξει σε ενα ερωτημα σε access 2007 σε μια στηλη μια εκφραση απο τη δομηση χρησιμοποιωντας την συναρτηση SWITCH.
Το προβλημα μου ειναι οτι μου βγαζει μηνυμα οτι ειναι πολυ μεγαλη η συμβολοσειρα και μου την κοβει πριν το τελος της. Σας παραθετω τι ακριβως εχω γραψει μηπως μου βρειτε καποια λυση ωστε να χωραει ολο αυτο που εχω γραψει.

Σας ευχαριστω
Συνημμένα Αρχεία
Τύπος Αρχείου: txt ΣΥΝΑΡΤΗΣΗ SWITCH.txt (1,2 KB, 21 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 06-04-11, 14:07
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.030
Προεπιλογή

Καλησπέρα!

Η συνάρτηση σου Αντώνη με μορφοποίηση για ευκολότερη ανάγνωση:

Παράθεση:
Eκφρ2: Switch(
[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=311 Or
[ABERONWMS_ROUTES]![ROUTEID]=312 Or [ABERONWMS_ROUTES]![ROUTEID]=313 Or
[ABERONWMS_ROUTES]![ROUTEID]=314 Or [ABERONWMS_ROUTES]![ROUTEID]=315) And
[ABERONWMS_ORDERS]![UNDEF19] Is Null;
3,95 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=311 And
[ABERONWMS_ORDERS]![UNDEF19]='COLD';
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=324;
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=321 And
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΧΕΡΣΑΙΑ ΕΛΛΑΔΑ';
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=321 And
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΝΗΣΙΩΤΙΚΗ ΕΛΛΑΔΑ';
7,5 & '€';

[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=316 Or
[ABERONWMS_ROUTES]![ROUTEID]=317) And [ABERONWMS_ORDERS]![UNDEF19]='COLD';
10,9 & '€';

[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=316 Or
[ABERONWMS_ROUTES]![ROUTEID]=317) And [ABERONWMS_ORDERS]![UNDEF19] Is Null;
7,3 & '€';

[ABERONWMS_ROUTES]![ROUTEID]=320;
3,95& '€';

[ABERONWMS_ROUTES]![ROUTEID]=325 AND
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΧΕΡΣΑΙΑ ΕΛΛΑΔΑ';
5 & '€';

[ABERONWMS_ROUTES]![ROUTEID]=325 AND [ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΝΗΣΙΩΤΙΚΗ ΕΛΛΑΔΑ';
7,5 & '€'
)
Μήπως από τη συνάρτηση λείπουν παρενθέσεις με αποτέλεσμα
εμείς να μη μπορουμε να κατανοήσουμε το ζητούμενο και η Access φυσικά να μην μπορεί να την επεξεργαστεί;

Αντώνη, προσπάθησε να περικλείσεις ξανά τις ενότητες των OR και των AND με παρενθέσεις ή περιγραψε μας με απλά
λόγια την κάθε μια συνθήκη χωριστά.


Ακόμα καλύτερα: Μοίρασε τη συνάρτηση σε περισσότερα πεδία.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 06-04-11 στις 14:18.
Απάντηση με παράθεση
  #3  
Παλιά 06-04-11, 14:44
deminio
Guest
 
Μηνύματα: n/a
Προεπιλογή

Κατ αρχην συμπληρωσα ορισμενα πεδια που δεν υπηρχαν στο txt.
Eκφρ2: Switch(
[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=311 Or
[ABERONWMS_ROUTES]![ROUTEID]=312 Or [ABERONWMS_ROUTES]![ROUTEID]=313 Or
[ABERONWMS_ROUTES]![ROUTEID]=314 Or [ABERONWMS_ROUTES]![ROUTEID]=315) And
[ABERONWMS_ORDERS]![UNDEF19] Is Null;
3,95 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=311 And
[ABERONWMS_ORDERS]![UNDEF19]='COLD';
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=324;
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=321 And
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΧΕΡΣΑΙΑ ΕΛΛΑΔΑ';
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=321 And
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΝΗΣΙΩΤΙΚΗ ΕΛΛΑΔΑ';
7,5 & '€';

[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=316 Or
[ABERONWMS_ROUTES]![ROUTEID]=317) And [ABERONWMS_ORDERS]![UNDEF19]='COLD';
10,9 & '€';

[Eκφρ1]='PHARMACY' And ([ABERONWMS_ROUTES]![ROUTEID]=316 Or
[ABERONWMS_ROUTES]![ROUTEID]=317) And [ABERONWMS_ORDERS]![UNDEF19] Is Null;
7,3 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=320;
3,95& '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=325 AND
[ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΧΕΡΣΑΙΑ ΕΛΛΑΔΑ';
5 & '€';

[Eκφρ1]='PHARMACY' And [ABERONWMS_ROUTES]![ROUTEID]=325 AND [ABERONWMS_UNDEF_TABLE6]![UNDEF4]='ΝΗΣΙΩΤΙΚΗ ΕΛΛΑΔΑ';
7,5 & '€')

να σας πω με λιγα λογια τι ακριβως εχω γραψει για την συγκεκριμενη στηλη.

Το [Εκφρ1] αφορα μια αλλη στηλη στο ερωτημα που μου κατηγοροποιει τους πελατες σε Wholesaler , Hospital , Pharmacy και στη στηλη που εχω το προβλημα εχω βαλει τη συναρτηση switch ωστε για τους πελατες Pharmacy να εξαντλησω ολες τις πιθανοτητες δρομολογιων που μπορουν να γινουν ωστε να μου γυρναει την τιμη για την καθε περιπτωση. Ειναι τοσες πολλες οι περιπτωσεις δρομολογιων που ενω μου δουλευε καλα το ερωτημα μολις προσθεσα σημερα τις τελευταιες 3 παραμετρους (οπως φαινονται παραπανω) η access μου βγαζει μηνυμα οτι ειναι μεγαλο ολο αυτο το κειμενο που εχω γραψει και μου τρωει τις τελευταιες 2 περιπτωσεις.
Και τελικα το ερωτημα μου ειναι υπαρχει οριο χαρακτηρων που μπορουμε να γραψουμε στη δομηση και αν υπαρχει μπορει ολο αυτο να γραφτει διαφορετικα?

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

Αντώνη, το όριο στο πλήθος χαρακτήρων που μπορείς να περάσεις στο κελί του ερωτήματος
σε προβολή σχεδίασης είναι 1024 χαρακτήρες.

Η συνάρτηση σου έχει περίπου 1200 χαρακτήρες.

Μια λύση είναι να ομαδοποιήσεις τις συνθήκες και να φτιάξεις 2 συναρτήσεις σε 2 πεδία.

Η πρώτη συνάρτηση θα περιέχει τις μισές συνθήκες.

Η δεύτερη συνάρτηση (αυτή θα δείχνει πάντα το τελικό αποτέλεσμα) θα ελέγχει αν η πρώτη έχει επιστρέψει αποτέλεσμα και αν ναι,
τότε θα το εμφανίζει;
αν όχι θα υπολογίσει το δεύτερο μισό της αρχικής.

Πχ:

Κώδικας:
Πεδίο Switch1: Switch(Συνθήκη1;Τιμή1;Συνθήκη2;Τιμή2;Συνθήκη3;Τιμή3;Συνθήκη4;Τιμή4)
Πεδίο Switch2: iif(Switch1 Is Null;Switch(Συνθήκη5;Τιμή5;Συνθήκη6;Τιμή6;Συνθήκη7;Τιμή7;Συνθήκη8;Τιμή8);Switch1)
Καλή συνέχεια!
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 06-04-11, 15:37
deminio
Guest
 
Μηνύματα: n/a
Προεπιλογή

Απλα τελειο...ευχαριστω πολυ.
Απάντηση με παράθεση
  #6  
Παλιά 06-04-11, 15:47
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα

Να κάνω μια άλλη πρόταση που βασίζεται στην χρήση εξωτερικής συνάρτησης σε ερώτημα.

Στην μικρή εφαρμογή, παρουσιάζω ένα ερώτημα όπου το 'υπολογιζόμενο' πεδίο, παίρνει τιμές απο κάποιο διπλανό πεδίο του ερωτήματος, τις στέλνει σε μια public συνάρτηση και το προϊόν της διαχείρισης επιστρέφει για να παρουσιαστεί στο 'υπολογιζόμενο' πεδίο.

Με εκτίμηση
Νίκος Δ.

ΥΣτερολόγιο: Να πολλαπλασιάσω τις επιλογές θέλω...
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Query.zip (12,2 KB, 28 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Σχετικά με κλείδωμα pctechdr Access - Ερωτήσεις / Απαντήσεις 11 28-10-15 17:02
[Γενικά] Σχετικά με ημερομηνία xristos Excel - Ερωτήσεις / Απαντήσεις 7 09-01-14 12:16
Σχετικά με τnν procedure alex Access - Ερωτήσεις / Απαντήσεις 59 26-03-12 15:42
Απορίες σχετικά με την Αccess. arxeiothetis Access - Ερωτήσεις / Απαντήσεις 27 06-07-11 11:40
ΔΟΜΗΣΗ ΕΚΦΡΑΣΗΣ ΜΕ ΗΜΕΡΟΜΗΝΙΕΣ leopet Access - Ερωτήσεις / Απαντήσεις 7 31-01-11 11:33


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