ΠΙΝΑΚΕΣ - tables

το Πρωτεύον Κλειδί

Το Πρωτεύον Κλειδί είναι ένα πεδίο ενός πίνακα της Access, που χαρακτηρίζει μοναδικά μία εγγραφή μέσα σ’ ολόκληρο τον πίνακα. Δηλ., δεν μπορεί να υπάρχουν δύο ή περισσότερες εγγραφές που να έχουν ίδια τιμή στο πρωτεύον κλειδί ενός πίνακα.

Ακόμη, οι εγγραφές του πίνακα ταξινομούνται αυτόματα με βάση το πρωτεύον κλειδί. Σ’ έναν πίνακα, μπορούμε να ορίσουμε σαν πρωτεύον κλειδί και έναν συνδυασμό δύο ή περισσοτέρων πεδίων, όταν ένα πεδίο μόνο του δεν μπορεί να ορίσει μοναδικά μια εγγραφή. Για παράδειγμα, σ’ έναν πίνακα μαθητών μπορούμε να ορίσουμε σαν πρωτεύον κλειδί τα πεδία επώνυμο, όνομα και πατρώνυμο μαζί, όταν είμαστε βέβαια απόλυτα σίγουροι ότι δεν υπάρχουν δύο ή περισσότεροι μαθητές με κοινά αυτά τα τρία πεδία.

 

 το Ευρετήριο - Index ;

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

Για τα πεδία που έχουμε ορίσει να έχουν δικό τους ευρετήριο, η Access δημιουργεί μόνη της έναν κατάλογο που δεν τον βλέπουμε εμείς, όπου σε κάθε γραμμή του καταλόγου υπάρχει ο αριθμός της εγγραφής και η τιμή του πεδίου. Ο κατάλογος αυτός ταξινομείται αυτόματα βάσει της τιμής του πεδίου. Όταν η Access κάνει αναζήτηση, για να βρει π.χ. ποιοι πελάτες έχουν το επώνυμο “Παπαδόπουλος”, τότε, εφ’ όσον, βέβαια, έχουμε ορίσει το πεδίο επώνυμο να έχει ευρετήριο δικό του, η Access ψάχνει πολύ γρήγορα στο ταξινομημένο ευρετήριο και βρίσκει όσους πελάτες έχουν το επώνυμο “Παπαδόπουλος”.

Για τα πεδία που έχουμε ορίσει να έχουν ευρετήριο, μπορούμε να πούμε στην Access να ελέγξει αν το πεδίο αυτό θα έχει μοναδικές τιμές (no duplicates) ή αν θα έχει πολλές ίδιες τιμές (yes duplicates). Για παράδειγμα, σ’ έναν πίνακα μαθητών, μπορούμε να έχουμε σαν πρωτεύον κλειδί τον κωδικό μαθητή και να ορίσουμε ευρετήριο, με αποδεκτές πολλαπλές τιμές, για το επώνυμο και ευρετήριο, χωρίς την αποδοχή πολλαπλών τιμών, για τον αριθμό μητρώου μαθητή. Ο αριθμός μητρώου του μαθητή δεν είναι, βέβαια, το πρωτεύον κλειδί, αλλά δεν μπορούν να υπάρχουν δύο ή περισσότεροι μαθητές με τον ίδιο αριθμό μητρώου.

 

Σε τι διαφέρουν το πρωτεύον κλειδί ενός πίνακα από το ευρετήριο που δεν αποδέχεται πολλαπλές τιμές.

Σ’ έναν πίνακα μπορούμε να έχουμε ένα μόνο πρωτεύον κλειδί, το οποίο μπορεί να αποτελείται από ένα ή περισσότερα πεδία, αλλά μπορούμε να έχουμε συγχρόνως και πολλά ευρετήρια πεδίων που δεν αποδέχονται πολλαπλές τιμές. Το πρωτεύον κλειδί είναι εκείνο που χαρακτηρίζει μοναδιαία έναν πίνακα και όχι το ευρετήριο.

 

 O Κανόνας Επικύρωσης (Validation Rule) και το Κείμενο Επικύρωσης (Validation Text)

Ο Κανόνας Επικύρωσης είναι προαιρετικός, μπορεί να οριστεί για κάποιο πεδίο και ελέγχει αν τα δεδομένα που εισάγουμε ανήκουν σε κάποια έγκυρη περιοχή τιμών. Αν γράψουμε κάτι που είναι εκτός της περιοχής τιμών που ορίζει ο κανόνας επικύρωσης, τότε η Access δεν μας αφήνει να προχωρήσουμε, αν προηγουμένως δεν γράψουμε μια αποδεκτή τιμή για το πεδίο.

Για παράδειγμα, αν καταχωρούμε τους βαθμούς μαθητών, τότε ο κανόνας επικύρωσης που θα πρέπει να δώσουμε, είναι ο : >= 0 and <=20 ή between 0 and 20. Αν, βέβαια, ο σωστός βαθμός είναι ο 15 και εμείς γράψουμε 17, τότε αυτό δεν θα μπορέσει να το ελέγξει η Access.

Αν εισάγουμε στοιχεία για πελάτες, και αυτοί προέρχονται μόνο από τις πόλεις Αθήνα, Θεσ/νίκη και Πάτρα, τότε ο κανόνας επικύρωσης θα είναι ο : ‘Αθήνα’ orΘεσ/νίκη’ or ‘Πάτρα’.

Το Κείμενο Επικύρωσης είναι ένα μήνυμα που εμφανίζει η Access σ’ ένα παράθυρο, όταν παραβούμε τον κανόνα επικύρωσης ενός πεδίου. Μπορούμε να γράψουμε ένα δικό μας μήνυμα, που θα υπενθυμίζει στον χρήστη ποιες είναι οι αποδεκτές τιμές.

Η χρησιμότητα του κανόνα επικύρωσης είναι ότι απλά, περιορίζει τα λάθη που μπορεί να κάνουμε κατά την πληκτρολόγηση.

 

Πώς ορίζεται και ποια είναι η χρησιμότητα μιας Σχέσης (Relationship) ανάμεσα σε δύο πίνακες της Access;

Είναι μια αντιστοίχηση ανάμεσα σ’ ένα πεδίο ενός πίνακα, μ’ ένα πεδίο ενός άλλου πίνακα. Τα πεδία αυτά πρέπει να είναι του ιδίου τύπου δεδομένων και του ιδίου μεγέθους. Το ένα είναι το πρωτεύον κλειδί στον έναν πίνακα και το άλλο είναι ένα απλό πεδίο στον άλλον πίνακα.

Για να ορίσουμε μια σχέση ανάμεσα σε δύο πίνακες, ανοίγουμε το παράθυρο Show Relationships της Βάσης Δεδομένων μας και επιλέγουμε (προσθέτουμε) τους πίνακες που θέλουμε να συσχετίσουμε. Μετά, πατάμε με το ποντίκι στο πεδίο του ενός πίνακα, το μεταφέρουμε και το αφήνουμε πάνω στο αντίστοιχο πεδίο του άλλου πίνακα. Η Access εμφανίζει τότε μια γραμμή που συνδέει τους δύο πίνακες και που έχει το σύμβολο 1 στο πρωτεύον πεδίο του ενός πίνακα και το σύμβολο του άπειρου στο αντίστοιχο πεδίο του άλλου πίνακα. Αυτό σημαίνει ότι αυτή είναι μια σχέση ένα προς πολλά (one to many).

Αν κάνουμε κλικ με το ποντίκι πάνω στη γραμμή της σχέσης, μπορούμε να την καταργήσουμε πατώντας το πλήκτρο <delete>, ενώ αν κάνουμε διπλό κλικ πάνω της, εμφανίζεται ένα παράθυρο, όπου μπορούμε να επιλέξουμε, αν θέλουμε βέβαια, άλλα πεδία από τους δύο πίνακες για τη διασύνδεση των δύο πινάκων. Ακόμη, μπορούμε να ορίσουμε αν θα υπάρχει ακεραιότητα αναφοράς και αν θα ισχύει η διαδοχική ενημέρωση ή και η διαδοχική διαγραφή.

Η χρησιμότητα μιας σχέσης ανάμεσα σε δύο πίνακες, είναι ότι μέσω αυτής μπορούμε να αντλήσουμε στοιχεία και πληροφορίες που ανήκουν και στους δύο πίνακες. Για παράδειγμα, αν έχω έναν πίνακα πελατών και έναν πίνακα παραγγελιών που κάνουν οι πελάτες μου, τότε ορίζω το πεδίο κωδικός πελάτη (ID_?aeάτη) να υπάρχει και στους δύο πίνακες, στον πίνακα πελατών σαν πρωτεύον κλειδί βέβαια, και διασυνδέω τους δύο πίνακες με το πεδίο αυτό.

Μετά, μπορώ να ζητήσω πληροφορίες, όπως π.χ. ποιοι πελάτες παρήγγειλαν κάποιο προϊόν αυτή τη χρονιά, ποιοι πελάτες δεν παρήγγειλαν κανένα προϊόν τον τελευταίο μήνα κ.ά. Η Access χρησιμοποιεί τον κωδικό του πελάτη σαν το στοιχείο που διασυνδέει τους δύο πίνακες και εμφανίζει τις πληροφορίες στην οθόνη σαν να ανήκαν αυτές στον ίδιο πίνακα.

 

Τι σημαίνει η Ακεραιότητα Αναφοράς (Referential Integrity)

Η ακεραιότητα αναφοράς αναφέρεται σε δύο συσχετισμένους πίνακες και σημαίνει πρακτικά ότι δεν μπορώ να καταχωρήσω στοιχεία στον πίνακα μιας σχέσης που είναι στη μεριά του “πολλά”, αν προηγουμένως δεν έχω καταχωρήσει την αντίστοιχη τιμή στο πεδίο της σχέσης που είναι στη μεριά του “ένα”.

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

Ένα άλλο παράδειγμα. Σε μια Υπηρεσία Μεταφορών-Επικοινωνιών, μπορούμε να ορίσουμε έναν πίνακα υπαλλήλων και έναν πίνακα αδειών κυκλοφορίας αυτοκινήτων, όπου υπάρχει η σχέση ένα προς πολλά, αφού ένας υπάλληλος μπορεί να γράψει πολλές άδειες κυκλοφορίας, αλλά μια άδεια κυκλοφορίας γράφεται μόνο από έναν υπάλληλο. Εφ’ όσον υπάρχει ακεραιότητα αναφοράς, για να γράψω μια καινούργια άδεια κυκλοφορίας, πρέπει να δώσω και τον κωδικό του υπαλλήλου που κάνει την καταχώρηση.

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

 

Τι σημαίνει η Διαδοχική Ενημέρωση (Cascade Update)

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

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

 

Τι σημαίνει η Διαδοχική Διαγραφή (Cascade Delete);

Σημαίνει ότι, αν σε μια σχέση που συνδέει δύο πίνακες, διαγράψω μια εγγραφή στον πίνακα που έχει τη σχέση “ένα”, τότε διαγράφονται αυτόματα όλες οι εγγραφές που περιέχουν αυτό το πεδίο στον πίνακα που έχει τη σχέση “πολλά”.

Για παράδειγμα, αν έχω ορίσει να ισχύει η διαδοχική διαγραφή στη σχέση του πίνακα πελατών με τον πίνακα παραγγελιών και διαγράψω έναν πελάτη, τότε αυτόματα διαγράφονται στον πίνακα παραγγελιών, όλες οι παραγγελίες που έκανε ο συγκεκριμένος πελάτης. Σημειώστε ότι, στην Access δεν μπορώ να διαγράψω ένα πεδίο, αλλά μια ολόκληρη εγγραφή.

 

Τι σημαίνει η σχέση ένα προς πολλά (one to many)

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

Παραδείγματα :

Ένας πελάτης κάνει πολλές παραγγελίες, αλλά μια παραγγελία ανήκει μόνο σ’ έναν πελάτη.

Σ’ ένα νοσοκομείο, ένας γιατρός μπορεί να παρακολουθεί πολλούς ασθενείς, αλλά ένας ασθενής παρακολουθείται μόνο από έναν γιατρό.

Ένας υπάλληλος σε μια διεύθυνση συγκοινωνιών καταχωρεί πολλά διπλώματα, αλλά ένα δίπλωμα καταχωρείται μόνο από έναν υπάλληλο.

 

Τι σημαίνει η σχέση πολλά προς πολλά (many to many)

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

Παραδείγματα :

Ένας καθηγητής διδάσκει σε πολλούς μαθητές, αλλά και ένας μαθητής διδάσκεται από πολλούς καθηγητές.

Ένας ιδιοκτήτης μπορεί να έχει στην κατοχή του πολλά ακίνητα, αλλά και ένα ακίνητο μπορεί να ανήκει σε πολλούς ιδιοκτήτες.

Ένας αθλητής παίρνει μέρος σε πολλούς αγώνες, αλλά και σ’ έναν αγώνα παίρνουν μέρος πολλοί αθλητές.

 

Τι σημαίνει η σχέση ένα προς ένα (one to one);

Σημαίνει ότι, σε μια εγγραφή του ενός πίνακα, αντιστοιχεί μία μόνο εγγραφή του άλλου πίνακα, και αλλά σε μια εγγραφή του δεύτερου πίνακα, αντιστοιχεί μία μόνο εγγραφή του πρώτου πίνακα.

Παραδείγματα :

Ένας οδηγός μπορεί να έχει ένα μόνο δίπλωμα οδήγησης, αλλά και ένα δίπλωμα οδήγησης ανήκει μόνο σ’ έναν οδηγό.

Ένα αυτοκίνητο μπορεί να έχει μόνο μία μηχανή, αλλά και μία μηχανή ανήκει μόνο σ’ ένα αυτοκίνητο.

Ένας νομός μπορεί να έχει μόνο μία πόλη σαν πρωτεύουσα, αλλά και μία πόλη μπορεί να είναι πρωτεύουσα μόνο ενός νομού.

 

Η Access υποστηρίζει μόνο σχέσεις ένα προς πολλά. Αν, όμως, έχω μια σχέση πολλά προς πολλά, τότε τι πρέπει να κάνω;

Η λύση είναι η δημιουργία ενός τρίτου πίνακα, ο οποίος θα περιέχει τα πρωτεύοντα κλειδιά των δύο άλλων πινάκων. Οι σχέσεις που θα δημιουργηθούν έτσι, μεταξύ των δύο αρχικών πινάκων και του τρίτου πίνακα, θα είναι σχέσεις ένα προς πολλά.

Στα παραδείγματα που υπάρχουν παραπάνω, θα μπορούσαμε π.χ. για τη σχέση των ιδιοκτητών με τα ακίνητα, να ορίσουμε έναν τρίτο πίνακα, με πεδία τον κωδικό ιδιοκτήτη, τον κωδικό ακινήτου και το ποσοστό που έχει ο ιδιοκτήτης σ’ αυτό το οικόπεδο. Έτσι, ο πίνακας των ιδιοκτητών και ο πίνακας των ακινήτων θα έχουν μια σχέση ένα προς πολλά με τον πίνακα αυτόν.

 

Η Access υποστηρίζει μόνο σχέσεις ένα προς πολλά. Αν, όμως, έχω μια σχέση ένα προς ένα, τότε τι πρέπει να κάνω;

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

 

  Ερώτημα (Query)

Είναι μια διαδικασία της Access που μας επιτρέπει να φιλτράρουμε (απομονώνουμε) κάποια πεδία ή/και κάποιες εγγραφές από έναν ή περισσότερους πίνακες. Οι νέες πληροφορίες εμφανίζονται στην οθόνη σαν ένας καινούργιος πίνακας. Ο παλιός πίνακας παραμένει άθικτος. Αυτό λέγεται Ερώτημα Επιλογής (Select Query).

Για παράδειγμα, μπορεί από τον πίνακα των πελατών να θέλω να δω μόνο εκείνους που μένουν στην Αθήνα ή στην Πάτρα. Μπορεί, ακόμη, να θέλω να δω μόνο εκείνους τους πελάτες που χρωστάνε πάνω από 100.000 δρχ.

Μπορώ, όμως, να κάνω και συνδυασμούς. Π.χ. μπορεί να θέλω να δω μόνο εκείνους τους πελάτες που μένουν στη Θεσ/νίκη και χρωστάνε από 100.000 έως 300.000 δρχ.

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

 

 τα Κριτήρια της Access και πώς κάνω συνδυασμούς Κριτηρίων;

Τα κριτήρια είναι οι περιορισμοί που θέτω στις τιμές των πεδίων για να φιλτράρω (απομονώσω) τα αποτελέσματα, όπως τα θέλω. Μπορώ να κάνω συνδυασμούς κριτηρίων με τους τελεστές And και Or. Ο τελεστής And δεν φαίνεται στην οθόνη, αλλά η χρήση του εννοείται όταν γράφουμε κριτήρια σε διάφορα πεδία στη γραμμή Criteria.

Για να λειτουργήσει ο τελεστής Or πρέπει να γράψω τα κριτήριά μου στη γραμμή Or, που είναι κάτω από τη γραμμή Criteria. Μπορεί, όμως, στη γραμμή Criteria και μέσα σ’ ένα πεδίο, να χρησιμοποιήσω τους τελεστές And και Or για να θέσω ό,τι κριτήρια θέλω.

Μπορώ να χρησιμοποιήσω πολλούς τελεστές για να προσδιορίσω τα κριτήριά μου. Η χρήση τους θα φανεί καλύτερα με παραδείγματα :

LIKE ‘Αθήνα’ ® να είναι ίσο με ‘Αθήνα’

LIKE ‘Α*’ ® να αρχίζει με ‘Α’

LIKE ‘*ίδης’ ® να τελειώνει σε ‘ίδης

LIKE ‘*α*’ ® να έχει το ‘α’ ενδιάμεσα

LIKE ‘[ΑΒΓ]*’ ® να αρχίζει μ’ ένα από τα γράμματα ΑΒΓ

ΙΝ (‘Αθήνα, ‘Θεσ/νίκη’, ’Πάτρα’) ® να είναι μια από τις τρεις πόλεις

‘Αθήνα’ Or ‘Ηράκλειο’ ® να είναι ίσο με ‘Αθήνα’ ή ‘Ηράκλειο’

>20 and <40 ® να είναι μεταξύ 20 και 40, χωρίς να περιέχει το 20 ή το 40

between 10 and 30 ® να είναι μεταξύ 10 και 30, περιέχοντας το 10 και το 30

<= 100 Or > 200 ® μικρότερο ή ίσο του 100 ή μεγαλύτερο του 200

LIKE ‘??α*’ ® να έχει δύο χαρακτήρες στη αρχή, μετά το ‘α’ και μετά ο,τιδήποτε

LIKE ‘##00’ ® ένας τετραψήφιος αριθμός που τελειώνει σε 00

LIKE ‘[!ΑΒ]*’ ® να μην αρχίζει από τα γράμματα Α ή Β και μετά να έχει ο,τιδήποτε

 

Τι σημαίνει η ένδειξη Show στα Ερωτήματα της Access;

Σημαίνει ότι, το πεδίο που έχει την ένδειξη Show σημαδεμένη (Χ), θα εμφανιστεί στην οθόνη του ερωτήματος. Αν δεν είναι σημαδεμένη η ένδειξη, τότε δεν θα εμφανιστεί όταν εκτελέσουμε το ερώτημα.

Υπάρχει, όμως, κάποιος λόγος να μην θέλω να εμφανιστεί ένα πεδίο σ’ ένα ερώτημα, εφόσον αυτό το πεδίο το έχω τοποθετήσει στο πλέγμα του ερωτήματος και έχω βάλει κάποια κριτήρια σ’ αυτό; Και βέβαια.

Δείτε το παρακάτω παράδειγμα : από τον πίνακα των αθλητών θέλω να δημιουργήσω ένα ερώτημα και να δω μόνο εκείνους τους αθλητές που είναι από την Ελλάδα. Θα πρέπει να επιλέξω το πεδίο χώρα και να βάλω το κριτήριο LIKE ’Ελλάδα’. Τότε, όμως, όταν θα εκτελεστεί το ερώτημα, θα βλέπω σ’ όλους τους αθλητές και στη στήλη χώρα τη λέξη Ελλάδα.

Αυτό, όμως, είναι περιττό, αφού επέλεξα μόνο τους Έλληνες αθλητές. Έτσι, μπορώ να επιλέξω να είναι απενεργοποιημένη η ένδειξη Show για το πεδίο χώρα. Το ερώτημα αυτό μπορώ να το αποθηκεύσω και να το ονομάσω Έλληνες Αθλητές.

 

Τι σημαίνει η ένδειξη Totals στα Ερωτήματα της Access;

Σημαίνει ότι μπορώ να χρησιμοποιήσω κάποιες αριθμητικές συναρτήσεις για να κάνω υπολογισμούς σε πεδία ενός ερωτήματος. Οι σημαντικότερες από τις συναρτήσεις αυτές είναι οι : Sum (Άθροισμα), Count (Μέτρηση), Avg (Μέσος Όρος), Min (Εύρεση μικρότερου) και Max (Εύρεση μεγαλύτερου).

Για να μπορέσω να χρησιμοποιήσω σωστά αυτές τις συναρτήσεις, πρέπει πρώτα να έχω χρησιμοποιήσει την Ομαδοποίηση (Group by). Η ομαδοποίηση ανήκει κι’ αυτή στην ομάδα Totals.

 

Τι σημαίνει η Ομαδοποίηση (Group by) στα Ερωτήματα της Access;

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

Για παράδειγμα, για να δω πόσες παραγγελίες έχει κάνει ο κάθε πελάτης, ομαδοποιώ (group by) το πεδίο κωδικός πελάτη και χρησιμοποιώ τη συνάρτηση count στο πεδίο κωδικός παραγγελίας.

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

 

 τα Ερωτήματα Δράσης (Action Queries);

Είναι ερωτήματα της Access με τα οποία μπορώ να κάνω αλλαγές στα στοιχεία των πινάκων όπου εφαρμόζονται αυτά τα ερωτήματα. Για να εφαρμοστούν αυτές οι αλλαγές, μπορώ να ορίσω και κάποια κριτήρια για να μην ισχύσουν οι αλλαγές για όλες τις εγγραφές του πίνακα.

Υπάρχουν Ερωτήματα Ενημέρωσης (Update Queries), όπου μπορώ να αλλάξω την τιμή σε κάποια πεδία του πίνακά μου, Ερωτήματα Διαγραφής (Delete Queries), όπου μπορώ να διαγράψω κάποιες εγγραφές του πίνακα, Ερωτήματα Προσθήκης (Add Queries), όπου μπορώ να προσθέσω στοιχεία ενός πίνακα σ’ έναν άλλον πίνακα και Ερωτήματα Δημιουργίας Πίνακα (Make Table Queries), όπου μπορώ να δημιουργήσω έναν καινούργιο πίνακα από τα στοιχεία ενός άλλου πίνακα.

 

Πώς μπορώ να κάνω υπολογισμούς πάνω σε πεδία της Access;

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

Για παράδειγμα, για να δω πόσο θα αλλάξουν οι μισθοί των υπαλλήλων μιας εταιρείας, αν αυτοί αυξηθούν κατά 10%, θα πρέπει να δημιουργήσω ένα ερώτημα και να γράψω σε κάποια στήλη την έκφραση :

[μισθός] * 1.1

Μπορώ να δω το αποτέλεσμα στην οθόνη, αλλά δεν μπορώ να αλλάξω μ’ αυτόν τον τρόπο τις τιμές των μισθών.

Μπορώ, ακόμη, να γράψω και εκφράσεις που θα περιέχουν περισσότερα από ένα πεδία :

[επίδομα γάμου] + [επίδομα παραγωγικότητας] * 1.2

Για να μπορέσω, όμως, να αλλάξω τις τιμές κάποιων πεδίων της Access, πρέπει να χρησιμοποιήσω είτε τα Ερωτήματα Ενημέρωσης (Update Queries) ή να γράψω μια υπομονάδα εντολών (module).

 

ΦΟΡΜΕΣ (Forms)

 οι Φόρμες της Access και ποια η χρησιμότητά τους;

Οι φόρμες της Access είναι ένας όμορφος τρόπος απεικόνισης των περιεχομένων των Πινάκων (Tables) ή των Ερωτημάτων (Queries) μιας Βάσης Δεδομένων. Μια φόρμα αναφέρεται πάντα σ’ έναν πίνακα (table) ή σ’ ένα ερώτημα (query) της Access απ’ όπου και παίρνει τα δεδομένα που απεικονίζει στην οθόνη. Σ’ έναν πίνακα μπορούμε να αντιστοιχίσουμε όσες φόρμες θέλουμε, δηλ. διαφορετικούς τρόπους εμφάνισης των δεδομένων μας.

Σε μια φόρμα μπορούμε να βάλουμε δικούς μας τίτλους (επικεφαλίδες) και να τοποθετήσουμε τα πεδία σε όμορφα έγχρωμα πλαίσια, με όποιες γραμματοσειρές και σε όποιο μέγεθος γραμμάτων θέλουμε εμείς.

Μπορούμε να αλλάξουμε το χρώμα του φόντου, των γραμμάτων ή του περιθωρίου σε κάθε πλαίσιο πεδίου και να προσθέσουμε και ειδικά εφέ. Ακόμα, μπορούμε να ζωγραφίσουμε μεμονωμένα πλαίσια και ορθογώνια μέσα στη φόρμα.

Σε μια φόρμα εμφανίζεται συνήθως μία εγγραφή ανά οθόνη και με τα πλήκτρα PageUp και PageDown μπορούμε να μετακινηθούμε από εγγραφή σε εγγραφή. Κατά τα λοιπά, ισχύουν όλοι οι περιορισμοί και οι κανόνες εγκυρότητας που είχαμε θέσει όταν δημιουργήσαμε τον πίνακα στον οποίο βασίζεται η φόρμα.

Ό,τι καταχωρίσεις και διορθώσεις κάνουμε στη φόρμα, θα μπορούμε να τις δούμε και στην άποψη φύλλου δεδομένων (datasheet) του πίνακα και το αντίθετο. Απλούστατα, με τη φόρμα έχουμε έναν ωραίο τρόπο εμφάνισης των περιεχομένων ενός πίνακα, αλλά και άλλα πολλά πλεονεκτήματα.

 

Ποια είναι τα πλεονεκτήματα που έχει η χρήση των φορμών;

Σε μια φόρμα μπορούμε να εμφανίσουμε τιμές που προκύπτουν από υπολογισμούς των τιμών κάποιων πεδίων του πίνακα στον οποίο αναφέρεται η φόρμα. Για παράδειγμα, μπορεί να θέλουμε να βλέπουμε τον μέσο όρο των βαθμών ενός μαθητή σε μια φόρμα που αναφέρεται σε μαθητές. Δεν θα ήταν, βέβαια, σωστό να δημιουργήσουμε ένα πεδίο, όπου θα υπολογίζαμε και θα καταχωρούσαμε εμείς τον μέσο όρο, αφού ο μέσος όρος προκύπτει από υπολογισμό πάνω στις τιμές κάποιων πεδίων του πίνακα.

Για να το κάνουμε αυτό, θα πρέπει να δημιουργήσουμε ένα ειδικό χειριστήριο (control box) με το εργαλείο πλαισίου κειμένου (ab½ ), όπου θα γράψουμε τον τύπο : ([βαθμός-1]+[βαθμός-2]+...)/10, αν ο μαθητής έχει βαθμούς σε δέκα μαθήματα. Ο μέσος όρος θα υπολογίζεται τότε και θα εμφανίζεται σε κάθε εγγραφή μαθητή, χωρίς να αποτελεί ξέχωρο πεδίο.

Σε μια φόρμα μπορούμε να εμφανίσουμε και άλλη μια ή περισσότερες υποφόρμες, δηλ. φόρμες μέσα σε φόρμα, που είναι πάρα πολύ χρήσιμες για να υπάρχει άμεση ενημέρωση όταν έχουμε συσχετισμένους πίνακες “ένα προς πολλά”. Περισσότερα για τις υποφόρμες σε παρακάτω ερώτηση.

Μπορούμε, ακόμα, να εμφανίσουμε και εικόνες, ζωγραφιές, φωτογραφίες, ήχους ή και κινούμενες εικόνες (video) από άλλα προγράμματα των Windows μέσα σε ειδικά πλαίσια της φόρμας. Όλα αυτά λέγονται Αντικείμενα ΣΕΑ και περισσότερα γι' αυτά παρακάτω.

Οι φόρμες είναι πολύ χρήσιμες όταν κάποια πεδία παίρνουν τιμές από μια συγκεκριμένη περιοχή τιμών. Για παράδειγμα, αν οι πελάτες μιας εταιρείας προέρχονται κατά το μεγαλύτερο μέρος τους από τις πόλεις Θεσ/νίκη, Κατερίνη και Λάρισα, τότε, μπορούμε σε μια φόρμα να εμφανίσουμε ένα πλαίσιο στο πεδίο πόλη, όπου θα υπάρχουν οι τρεις αυτές τιμές και θα μπορούμε να επιλέγουμε όποια τιμή θέλουμε, κάνοντας απλά κλικ πάνω της με το ποντίκι.

Αν, βέβαια, ο πελάτης είναι από μια πόλη που δεν ανήκει στη λίστα αυτή, τότε η Access μάς δίνει τη δυνατότητα να καταχωρίσουμε και τιμές εκτός λίστας. Με τον τρόπο αυτό, όμως, γλυτώνουμε από πληκτρολόγηση και αποφεύγουμε και τα λάθη. Περισσότερα, παρακάτω, στην παράγραφο Κατάλογοι και Σύνθετα Πλαίσια.

Το μόνο μειονέκτημα που έχουν οι φόρμες, είναι ότι δεν μπορούμε να δούμε ταυτόχρονα στην οθόνη πολλές εγγραφές μαζί, κάτι που μπορεί να γίνει με την προβολή φύλλου δεδομένων (datasheet).

 

 Η Εργαλειοθήκη και τι το Φύλλο Ιδιοτήτων;

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

Oi φύλλο ιδιοτήτων (properties) περιέχει όλες τις ιδιότητες ενός αντικειμένου και μπορεί να αναφέρεται σ’ ολόκληρη τη φόρμα, στο τμήμα λεπτομερειών της (details), σ’ ένα χειριστήριο, σ’ ένα πλαίσιο, σ’ ένα κουμπί εντολής και γενικά σε οποιοδήποτε αντικείμενο. Οι ιδιότητες που εμφανίζονται στο φύλλο ιδιοτήτων, χωρίζονται σε τέσσερις κατηγορίες : Format (Εμφάνιση), Data (Δεδομένα), Event (Συμβάντα), Other (Διάφορα Άλλα) και η επιλογή All (Όλα) έχει όλες τις ιδιότητες συγκεντρωμένες.

 

 οι Ετικέτες και τι τα Πλαίσια Κειμένου;

Σε μια φόρμα, τα κείμενα και οι τιμές των πεδίων εμφανίζονται μέσα σε πλαίσια. Υπάρχουν, όμως, δύο είδη πλαισίων : οι ετικέτες (labels) και τα πλαίσια κειμένου (text boxes).

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

Τα πλαίσια κειμένου συνδέονται με κάποιο πεδίο ή πεδία του πίνακα στο οποίο βασίζεται η φόρμα. Έτσι, αν αλλάξουμε το περιεχόμενο ενός πλαισίου κειμένου, τότε αλλάζει και η τιμή του πεδίου με το οποίο είναι συνδεδεμένο. Μπορούμε, ακόμη, να χρησιμοποιήσουμε ένα πλαίσιο κειμένου για να υπολογίζουμε τιμές χρησιμοποιώντας αριθμητικές παραστάσεις. Σ’ αυτή την περίπτωση, όμως, δεν μπορούμε να αλλάξουμε τιμές, αλλά απλά κάνουμε υπολογισμούς τιμών από τις τιμές άλλων πεδίων. Το πλήκτρο (εργαλείο) της εργαλειοθήκης με το οποίο δημιουργούμε πλαίσια κειμένου είναι αυτό που έχει τα γράμματα ab½ .

Οι ετικέτες και τα πλαίσια κειμένου αποκαλούνται και χειριστήρια (control boxes) και μπορούμε να αλλάξουμε το μέγεθός τους και να τα μετακινήσουμε μαζί ή και ξέχωρα.

 

 το Εργαλείο Ομάδας Επιλογών (Option Group);

Είναι ένα χρήσιμο εργαλείο με το οποίο δημιουργούμε ένα πλαίσιο όπου μπορούμε να τοποθετήσουμε μέσα ένα ή περισσότερα κουμπιά επιλογών (option buttons), πλαίσια ελέγχου (check boxes) ή κουμπιά διακόπτη (toggle buttons). Σε κάθε κουμπί μπορούμε να αντιστοιχίσουμε μια ξεχωριστή αριθμητική τιμή. Τα κουμπιά επιλογών έχουν ένα μαύρο σημάδι σ’ έναν κύκλο όταν είναι επιλεγμένα, τα πλαίσια ελέγχου έχουν ένα σημάδι O μέσα σ’ ένα τετράγωνο πλαίσιο και τα κουμπιά διακόπτη μοιάζουν με ηλεκτρικό διακόπτη.

Όταν κάνουμε κλικ με το ποντίκι σ’ ένα από τα κουμπιά επιλογών, τότε όλη η ομάδα επιλογών παίρνει αυτή την τιμή και ακυρώνονται όλες οι άλλες επιλογές. Την ομάδα αυτή επιλογών την συνδέουμε μ’ ένα πεδίο του πίνακα στο οποίο βασίζεται η φόρμα και έτσι το πεδίο αυτό ενημερώνεται με την τιμή που έχουμε επιλέξει από το αντίστοιχο κουμπί επιλογής.

Για παράδειγμα, η εταιρεία κινητής τηλεφωνίας Telestet έχει κατατάξει τους πελάτες της σε τέσσερις κατηγορίες, ανάλογα με το οικονομικό πακέτο που έχουν επιλέξει : economy, business, city και business plus. Ένας πελάτης της Telestet θα ανήκει υποχρεωτικά σε μία από τις τέσσερις παραπάνω κατηγορίες.

Για να διευκολύνουμε, λοιπόν, την καταχώριση των στοιχείων των πελατών και για να μην κάνουμε λάθη κατά την πληκτρολόγηση, μπορούμε να δημιουργήσουμε μια ομάδα επιλογών, όπου θα τοποθετήσουμε τέσσερα κουμπιά επιλογών, που το καθένα θα αντιστοιχεί σε μια από τις κατηγορίες πελατών της Telestet. Έτσι, πατώντας με το ποντίκι στην κατηγορία που θέλουμε, το αντίστοιχο πεδίο παίρνει αυτόματα την τιμή, χωρίς να χρειαστεί να την πληκτρολογήσουμε. Θα πρέπει να τοποθετήσουμε και τις αντίστοιχες ετικέτες (labels) δίπλα στην κάθε επιλογή.

 

 οι Κατάλογοι και τι τα Σύνθετα Πλαίσια (List Box - Combo Box);

Είναι μια διευκόλυνση που μας παρέχει η Access και που μοιάζει με το εργαλείο ομάδας επιλογών που είδαμε στην προηγούμενη παράγραφο. Και εδώ έχουμε να κάνουμε με επιλογές από μια συγκεκριμένη περιοχή τιμών.

Είδαμε σε μια προηγούμενη παράγραφο ένα παράδειγμα με τις τρεις πόλεις (Θεσ/νίκη - Κατερίνη - Λάρισα), απ’ όπου επιλέγουμε αυτήν που θέλουμε. Αν, όμως, κάποιος πελάτης δεν μένει σε μια από τις τρεις αυτές πόλεις, τότε μπορούμε να παρακάμψουμε τις τρεις αυτές επιλογές και να δώσουμε μια καινούργια επιλογή, χωρίς να υπάρχει κανένα απολύτως πρόβλημα.

Υπάρχουν δύο ειδών λίστες τιμών : οι κατάλογοι και τα σύνθετα πλαίσια. Οι διαφορές τους είναι ότι στα σύνθετα πλαίσια υπάρχει ένα πτυσσόμενο πλαίσιο όπου μπορούμε να καταχωρίσουμε και δικές μας τιμές εκτός από τις τιμές του καταλόγου, ενώ στους καταλόγους δεν υπάρχει πτυσσόμενο πλαίσιο και οι τιμές που μπορούμε να επιλέξουμε είναι καθορισμένες.

Δημιουργούμε πρώτα τον κατάλογο ή το σύνθετο πλαίσιο και μετά το συνδέουμε με το πεδίο που θέλουμε. Η λίστα των τιμών που θα ανήκει στο σύνθετο πλαίσιο, μπορεί να προέρχεται είτε από έναν άλλον πίνακα ή να είναι μια λίστα τιμών που θα τη δημιουργήσουμε εμείς. Αν θέλουμε να περιοριστούμε μόνο στις επιλογές της λίστας επιλέγουμε Limit To List - Yes, αλλιώς επιλέγουμε Limit To List - No και μπορούμε να γράψουμε και άλλες τιμές εκτός λίστας.

Παράδειγμα με δική μας λίστα τιμών είδαμε προηγουμένως. Υπάρχει, όμως, και περίπτωση να πάρουμε τιμές από έναν άλλον πίνακα; Και βέβαια. Αν καταχωρούμε τις παραγγελίες των πελατών μας, τότε πρέπει να δίνουμε σε κάθε παραγγελία και τον κωδικό ή το επώνυμο του πελάτη. Δεν μπορούμε να θυμόμαστε, βέβαια, όλους τους κωδικούς ή όλα τα επώνυμα των πελατών.

Έτσι, επιλέγουμε για λίστα τιμών τις τιμές του πίνακα πελατών και στο πλαίσιο όπου θα πρέπει να γράψουμε τον κωδικό του πελάτη μέσα στη φόρμα των παραγγελιών, επιλέγουμε τον πελάτη που θέλουμε από τη λίστα των πελατών, χωρίς να ανησυχούμε αν γράψαμε σωστά τον κωδικό του ή το επώνυμό του. Σ’ αυτή την περίπτωση, η τιμή που θα επιλέξουμε πρέπει οπωσδήποτε να είναι από τη λίστα των πελατών (Limit To List - Yes).

 

 τα Αντικείμενα ΣΕΑ (OLE Objects);

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

 

 τα Κουμπιά Εντολών (Command Buttons);

Είναι ειδικά πλήκτρα στα οποία μπορούμε να αντιστοιχίσουμε μια μακροεντολή ή μια διαδικασία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) που έχει η Access. Δημιουργούμε αυτό το πλήκτρο μέσα στη φόρμα, του δίνουμε ένα χαρακτηριστικό όνομα και όταν κάνουμε κλικ πάνω του με το ποντίκι, τότε εκτελείται η αντίστοιχη μακροεντολή ή η διαδικασία. Το ποια μακροεντολή ή διαδικασία θα εκτελεστεί, το ορίζουμε στον πίνακα των ιδιοτήτων του κουμπιού εντολών.

Μια μακροεντολή ή μια διαδικασία μπορεί να ανοίγει μια φόρμα ή μια αναφορά, να κάνει μια εκτύπωση ή έναν έλεγχο εγκυρότητας δεδομένων κ.ά.

 

 η Υποφόρμα (SubForm);

Η υποφόρμα είναι μια φόρμα που είναι ενσωματωμένη μέσα σε μια κύρια φόρμα. Για παράδειγμα, αν έχουμε δημιουργήσει μια φόρμα για τους πελάτες μιας εταιρείας και θέλουμε συγχρόνως να βλέπουμε στην οθόνη μας και ποιες παραγγελίες έχει κάνει ο κάθε πελάτης, τότε χρησιμοποιούμε το ειδικό εικονίδιο για τη δημιουργία υποφόρμας, επιλέγουμε τον πίνακα των παραγγελιών και έτσι βλέπουμε στην οθόνη μας για τον κάθε πελάτη και όλες τις παραγγελίες του.

Για να μπορέσουμε να δημιουργήσουμε, βέβαια, μια υποφόρμα, θα πρέπει να υπάρχει μια σχέση “ένα προς πολλά” ανάμεσα στον πίνακα της κύριας φόρμας και στον πίνακα που θα δώσει τα στοιχεία του στην υποφόρμα.

 

ΑΝΑΦΟΡΕΣ (Reports)

 οι Αναφορές της Access και ποια η χρησιμότητά τους;

Οι αναφορές (reports) της Access είναι ένας ωραίος τρόπος εκτύπωσης των δεδομένων που υπάρχουν σ’ έναν πίνακα (table) ή σ’ ένα ερώτημα (query) της Access. Τα δεδομένα ενός πίνακα μπορούμε να τα εκτυπώσουμε και με την αντίστοιχη εντολή (εικονίδιο) που υπάρχει στις επιλογές ενός πίνακα, αλλά με τις αναφορές μπορούμε να κάνουμε πολλά περισσότερα πράγματα, με κυριότερο την ομαδοποίηση και την εμφάνιση αθροισμάτων (sum) για τα αριθμητικά πεδία.

Για να μπορέσουμε να δουλέψουμε πιο αποτελεσματικά με τις αναφορές, είναι πάρα πολύ χρήσιμοι οι Οδηγοί Αναφορών (Report Wizards). Αν, παρ’ όλα αυτά, αποφασίσουμε να δημιουργήσουμε μόνοι μας μια αναφορά, θα συναντήσουμε αρκετές δυσκολίες στη δημιουργία της.

 

Τι σημαίνει και πώς δηλώνεται η Ομαδοποίηση (Grouping);

Η ομαδοποίηση και η ταξινόμηση δηλώνονται μαζί και σημαίνουν ότι θέλουμε η Access να μας εμφανίσει τα δεδομένα στην εκτύπωση ομαδοποιημένα και ταξινομημένα σύμφωνα με κάποιο ή κάποια πεδία. Όταν πατάμε στο κουμπί ομαδοποίησης/ταξινόμησης, εμφανίζεται ένα παράθυρο όπου μπορούμε να επιλέξουμε το πεδίο ή τα πεδία σύμφωνα με τα οποία θα γίνει η ταξινόμηση και η ομαδοποίηση.

Στο πάνω μέρος του παραθύρου αυτού επιλέγουμε τα πεδία με βάση τα οποία θα γίνει η ταξινόμηση και στο κάτω μέρος υπάρχουν κάποιες επιλογές για το κάθε πεδίο, όπου μπορούμε να επιλέξουμε αν θα υπάρχει κεφαλίδα ομάδας (group header) ή/και υποσέλιδο ομάδας (group footer).

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

 

Σαν να μην κατάλαβα πολύ καλά  η Ομαδοποίηση. Μήπως μπορώ να έχω ένα παράδειγμα;

Βέβαια. Ας υποθέσουμε ότι έχουμε έναν πίνακα πελατών και έναν πίνακα παραγγελιών που έχουν μεταξύ τους σχέση “ένα προς πολλά”. Μπορώ να κάνω ομαδοποίηση ανά πελάτη, δηλ. να εκτυπώσω τους πελάτες με αλφαβητική ταξινόμηση, να έχω μια κεφαλίδα ομάδας με τα στοιχεία του πελάτη (επώνυμο, όνομα, τηλέφωνο κ.ά.) και από κάτω να έχω μια αλφαβητική ή ανά ημερομηνία παρουσίαση των παραγγελιών του πελάτη αυτού. Μόλις τελειώσουν οι παραγγελίες του κάθε πελάτη, μπορώ, αν θέλω, να δημιουργήσω και υποσέλιδο ομάδας, όπου θα εμφανιστούν τα σύνολα των παραγγελιών (συνολική αξία παραγγελιών του πελάτη κ.ά.).

Αν δεν είχα ορίσει να υπάρχει κεφαλίδα ομάδας για το επώνυμο του πελάτη, τότε θα είχε γίνει μόνο η ταξινόμηση ανά επώνυμο πελάτη και όχι και η ομαδοποίηση.

Μπορώ, ακόμη, να κάνω ομαδοποίηση και σύμφωνα με το πρώτο γράμμα του κάθε πελάτη, δηλ. να είναι μαζί αυτοί που αρχίζουν από Α, μετά αυτοί που αρχίζουν από Β, κοκ.

Ακόμα, μπορώ να κάνω ομαδοποίηση με βάση δύο πεδία. Για παράδειγμα, μπορώ να ομαδοποιήσω πρώτα σύμφωνα με την πόλη που μένει ο πελάτης και μετά να ομαδοποιήσω ή απλά να ταξινομήσω σύμφωνα και με το επώνυμό του. Έτσι, θα εμφανιστούν πρώτα οι πόλεις με αλφαβητική σειρά και σε κάθε πόλη θα εμφανιστούν οι πελάτες της πόλης αυτής πάλι με αλφαβητική σειρά. Για κάθε πελάτη μπορώ, αν θέλω, να εκτυπώσω και τις παραγγελίες που έχει κάνει.

Σ’ ένα άλλο παράδειγμα, αν έχουμε μια βάση δεδομένων με σχολεία, τότε μπορώ να ομαδοποιήσω πρώτα ανά σχολείο και μετά ανά τάξη σχολείου και έτσι να βλέπω στην εκτύπωση το 1ο Γυμνάσιο, τις τρεις τάξεις του μ’ όλα τα στοιχεία των μαθητών ανά τάξη, μετά το 2ο Γυμνάσιο με τις τρεις τάξεις του και όλα τα στοιχεία των μαθητών κοκ.

 

ΜΑΚΡΟΕΝΤΟΛΕΣ (Macros)

 Οι Μακροεντολές της Access και ποια η χρησιμότητά τους;

Οι μακροεντολές (macros) είναι ένα σύνολο εντολών της Access που εκτελείται κάθε φορά που το καλούμε. Μπορούμε, μέσα στις εντολές που υπάρχουν σε μια μακροεντολή, να προσθέσουμε και συνθήκες (conditions), ώστε η μακροεντολή να μην εκτελείται πάντα, παρά μόνο όταν είναι αληθείς οι συνθήκες που έχουμε θέσει.

Η Access έχει ένα συγκεκριμένο σύνολο εντολών για μακροεντολές, απ’ όπου μπορούμε να επιλέξουμε αυτές που θέλουμε να εκτελέσουμε. Δηλ., δεν μπορούμε να δημιουργήσουμε δικές μας εντολές, αλλά περιοριζόμαστε σ’ αυτές που έχει έτοιμες η Access.

Μερικές απ’ αυτές τις εντολές είναι οι εξής :

·         Close (κλείνει μια φόρμα, μια αναφορά ή μια βάση δεδομένων),

·         OpenForm (ανοίγει μια φόρμα),

·         OpenReport (ανοίγει μια αναφορά),

·         RunCode (εκτελεί μια συνάρτηση της VBA),

·         RunMacro (εκτελεί μια άλλη μακροεντολή),

·         StopMacro (σταματά την τρέχουσα μακροεντολή),

·         GoToRecord (πηγαίνει σε μια εγγραφή),

·         GoToControl (ενεργοποιεί ένα χειριστήριο),

·         Maximize (μεγιστοποιεί το ενεργό παράθυρο),

·         Beep (παράγει ήχο),

·         Msgbox (εμφανίζει ένα μήνυμα).

Μια μακροεντολή μπορεί να αποτελείται από μία ή περισσότερες από τις εντολές που είδαμε παραπάνω και μπορούμε ακόμη να ομαδοποιήσουμε και κάποιες εντολές μέσα σε μια μακροεντολή και να τις δώσουμε ένα όνομα. Έτσι, μια μακροεντολή μπορεί να αποτελείται από ομάδες εντολών και μπορούμε να καλέσουμε μόνο αυτή την ομάδα εντολών της μακροεντολής ως εξής :

[ΌνομαΜακροεντολής].[ΟμάδαΜακροεντολής]

Για να έχουμε πρόσβαση στις τιμές των πεδίων (χειριστηρίων) μιας φόρμας, μπορούμε να χρησιμοποιήσουμε τον εξής τύπο :

Forms![ΌνομαΦόρμας]![ΌνομαΧειριστηρίου]

Μπορούμε να συνδέσουμε μια μακροεντολή με ένα κουμπί εντολής μιας φόρμας με τους εξής δύο τρόπους : ή σύρουμε το εικονίδιο της μακροεντολής με το ποντίκι και το αφήνουμε μέσα στη φόρμα στο σημείο που θέλουμε, οπότε το κουμπί εντολής δημιουργείται αυτόματα, ή δημιουργούμε μέσα στη φόρμα ένα κουμπί εντολής και από τις ιδιότητες του κουμπιού εντολής και από τον κατάλογο Event (Συμβάντα) επιλέγουμε την ιδιότητα συμβάντος OnClick και γράφουμε εκεί το όνομα της μακροεντολής που θέλουμε να εκτελεστεί με το πάτημα του ποντικιού.

Η χρησιμότητα των μακροεντολών είναι ότι μπορούν να αντικαταστήσουν πολλές ενέργειες που θα έπρεπε να κάναμε αν δεν υπήρχε η μακροεντολή. Έτσι, ενέργειες που τις κάνουμε συχνά, όπως π.χ. άνοιγμα φόρμας, άνοιγμα αναφοράς, έλεγχος των τιμών κάποιων πεδίων, κ.ά., μπορούμε να τις ενσωματώσουμε μέσα σε μακροεντολές και να τις εκτελούμε μ' ένα απλό πάτημα του ποντικιού.