Δημιουργία Υποφόρμας

Στη συνέχεια θα αναφερθούμε στις υποφόρμες. Υποφόρμα ή δευτερεύουσα φόρμα, είναι μία φόρμα μέσα σε μια άλλη. Ας δούμε μία υποφόρμα. Στην φόρμα «Πωλήσεις», εμφανίζονται τα στοιχεία των πωλήσεων, με τον κωδικό πώλησης, την ημερομηνία πώλησης, το όνομα του πελάτη, και τον τρόπο πληρωμής. Έτσι, η πώληση με κωδικό 1, πραγματοποιήθηκε 1/1/2005, από τον Λαμπρόπουλο Στέλιο, με τρόπο πληρωμής μετρητά. Παρακάτω, εμφανίζονται οι γραμμές πωλήσεων, οι δίσκοι δηλαδή που αγόρασε ο πελάτης. Στις γραμμές, εμφανίζονται τα ονόματα των δίσκων, οι ποσότητες, οι τιμές κ.ο.κ. Οι γραμμές των πωλήσεων εμφανίζονται σε μία δεύτερη φόρμα, η οποία ονομάζεται δευτερεύουσα φόρμα. Πουλήθηκαν τέσσερις δίσκοι της Μαρ. Νίνου / Βασίλη Τσιτσάνη, και ένας του Στέλιου Καζαντίδη και της Μαρινέλλας. Η υποφόρμα αυτή, είναι αποθηκευμένη ως φόρμα, με το όνομα «Πωλήσεις γραμμές», και εμφανίζει όλες τις πωλήσεις. Μεταβαίνουμε στην φόρμα «Πωλήσεις». Παρατηρούμε, ότι υπάρχουν δύο ομάδες κουμπιών μετακίνησης. Αυτή ο ομάδα, είναι της κύριας φόρμας, και αυτή, είναι της υποφόρμας. Στην φόρμα Πωλήσεις βλέπουμε τους δίσκους που αγόρασε ο πελάτης. Παρατηρούμε, ότι η υποφόρμα πωλήσειςγραμμές, δεν εμφανίζει πλέον όλες τις εγγραφές, αλλά τις φιλτράρει, και εμφανίζει μόνο εκείνες τις εγγραφές που αντιστοιχούν στην συγκεκριμένη πώληση. Η κύρια φόρμα «Πωλήσεις», αντλεί δεδομένα, από τον πίνακα Πωλήσεις. Κάθε εγγραφή, αντιστοιχεί και σε μία πώληση. Αυτή είναι η πρώτη πώληση, αυτή η δεύτερη κ.ο.κ. Έτσι, ο Κωδικός της πρώτης πώλησης, εμφανίζεται εδώ, η ημερομηνία εδώ, εδώ, εμφανίζεται ο κωδικός του πελάτη, ενώ εδώ το πλήρες όνομά του, και εδώ εμφανίζεται ο τρόπος πληρωμής: το 1, αντιστοιχεί σε μετρητοίς. Η υποφόρμα, αντλεί δεδομένα από τον πίνακα, «ΠωλήσειςΓραμμές». Παρατηρούμε, ότι στην πώληση με κωδικό 1, ο πελάτης αγόρασε δύο δίσκους. Το ίδιο παρατηρούμε και εδώ. Στην πώληση με κωδικό 1, υπάρχουν δύο αγορές, η πρώτη με 4 αντίτυπα, και η δεύτερη με 1. Η αντιστοίχηση, γίνεται μέσω των τιμών του πεδίου «Πώληση_Κωδ», και του πεδίου «Κωδικός Πώλησης» του πίνακα «Πωλήσεις». Αυτή η δομή των δύο πινάκων όπου στον έναν έχουμε τους κωδικούς των πωλήσεων, και στον άλλον το τι αγόρασε ο πελάτης, είναι χρήσιμη όταν έχουμε συνδέσεις ένα προς πολλά. Εκτός από το συγκεκριμένο παράδειγμα, άλλα παραδείγματα είναι: 1 δίσκος με πολλά τραγούδια, 1 αίθουσα με πολλούς μαθητές, κ.λπ. Ας δούμε πως εισάγουμε μια υποφόρμα. Συγκεκριμένα, θα εισάγουμε ως υποφόρμα, την φόρμα «Πωλήσεις Γραμμές». Πρώτα, την διαγράφουμε. Μεταβαίνουμε σε προβολή σχεδίασης, επιλέγουμε την υποφόρμα, και την διαγράφουμε. Επιλέγουμε από την εργαλειοθήκη, το εργαλείο «Δευτερεύουσα φόρμα/Έκθεση». Κάνουμε κλικ, και σύρουμε τον δείκτη του ποντικιού μέσα στην φόρμα, στο σημείο που θέλουμε να τοποθετήσουμε την υποφόρμα. Εμφανίζεται, το παράθυρο «Οδηγός δευτερευουσών φορμών». Στο βήμα αυτό, επιλέγουμε εάν για την δημιουργία της υποφόρμας, θα χρησιμοποιήσουμε κάποιον πίνακα ή ερώτημα, ή αν θα χρησιμοποιήσουμε μια υπάρχουσα φόρμα ως δευτερεύουσα. Επιλέγουμε «Χρήση μιας υπάρχουσας φόρμας», επιλέγουμε την φόρμα «Πωλήσεις Γραμμές», και κάνουμε κλικ στο κουμπί Επόμενο. Για να συνδεθεί η φόρμα Πωλήσεις, με την υποφόρμα Πωλήσεις γραμμές, θα πρέπει οι εγγραφές των δύο φορμών, να σχετίζονται μεταξύ τους με βάση κάποιο πεδίο. Στο βήμα αυτό, επιλέγουμε ποια θα είναι τα πεδία με τα οποία θα γίνει η σύνδεση. Από τη φόρμα επιλέγουμε το πεδίο, «Κωδικός Πώλησης», και από τη δευτερεύουσα φόρμα επιλέγουμε το πεδίο, «Πώληση Κωδικός». Πατάμε το κουμπί Επόμενο. Εδώ, μπορούμε να πληκτρολογήσουμε το όνομα της υποφόρμας. Δεχόμαστε το προεπιλεγμένο όνομα «Πωλήσεις Γραμμές», και πατάμε το κουμπί Τέλος. Η υποφόρμα έχει δημιουργηθεί. Μεταβαίνουμε σε προβολή φόρμας. Στο παράδειγμα μας, την κύρια, και την δευτερεύουσα φόρμα, τις είχαμε ετοιμάσει από πριν. Ας δούμε τώρα, πως μπορούμε να δημιουργήσουμε από την αρχή, μία κύρια, και μία δευτερεύουσα φόρμα. Θα δημιουργήσουμε με τη χρήση οδηγού φορμών, μία κύρια φόρμα με τα στοιχεία των πελατών, και μία υποφόρμα με τις πωλήσεις. Οι δύο πίνακες, «Πωλήσεις», και «Πελάτες», θα πρέπει να είναι συσχετιζόμενοι μεταξύ τους, για να δημιουργηθεί η δευτερεύουσα και η κύρια φόρμα. Ανοίγουμε το παράθυρο των σχέσεων, και παρατηρούμε, πως οι δύο πίνακες σχετίζονται μεταξύ τους, με βάση τα πεδία «Κωδικός Πελάτη», και «Πελάτης κωδικός. Η σχέση είναι ένα-προς-πολλά. Κλείνουμε το παράθυρο των σχέσεων. Επιλέγουμε Φόρμες, και κάνουμε διπλό κλικ, στην «Δημιουργία φορμών με τη χρήση οδηγού». Εμφανίζεται το παράθυρο διαλόγου «Οδηγός φορμών». Στο βήμα αυτό, επιλέγουμε τους πίνακες και τα πεδία που θέλουμε να εμφανίζονται στην κύρια και στην δευτερεύουσα φόρμα. Επιλέγουμε, από τον πίνακα «Πελάτες», τα πεδία, «Κωδικός Πελάτη», «Επώνυμο», «Όνομα», και «Επάγγελμα». Από τον πίνακα «Πωλήσεις», επιλέγουμε, «Κωδικός πώλησης», και «Ημερομηνία». Πατάμε το κουμπί Επόμενο. Στο βήμα αυτό, επιλέγουμε πως θέλουμε να προβάλλονται τα δεδομένα, «Κατά πελάτη», ή «κατά Πωλήσεις». Επιλέγουμε «κατά Πελάτη», διότι θέλουμε στην κύρια φόρμα, να εμφανίζονται οι πελάτες, και στην δευτερεύουσα φόρμα, οι πωλήσεις του κάθε πελάτη. Στο τμήμα αυτό, μπορούμε να επιλέξουμε «Φόρμα με δευτερεύουσα φόρμα», ή «Συνδεδεμένες φόρμες». Επιλέγουμε «Φόρμα με δευτερεύουσα φόρμα», διότι θέλουμε η υποφόρμα, να εμφανίζεται μέσα στην κύρια φόρμα, και όχι σε άλλο παράθυρο. Κάνουμε κλικ στο κουμπί Επόμενο. Στο βήμα αυτό, επιλέγουμε την διάταξη που θέλουμε να έχει η δευτερεύουσα φόρμα. Επιλέγουμε «Πίνακα», και κάνουμε κλικ στο κουμπί Επόμενο. Στο βήμα αυτό, επιλέγουμε το στυλ της φόρμας. Επιλέγουμε «Τυπικό», και κάνουμε κλικ στο κουμπί Επόμενο. Στο τελευταίο βήμα, πληκτρολογούμε τους τίτλους, τα ονόματα δηλαδή, της φόρμας, και της υποφόρμας. Ορίζουμε ως όνομα φόρμας Πελάτες1, και υποφόρμας Πωλήσεις1. Επιλέγουμε «ʼνοιγμα της φόρμας για προβολή ή την καταχώρηση πληροφοριών», και πατάμε το κουμπί Τέλος. Μεταβαίνουμε σε προβολή φόρμας. Τα στοιχεία του κάθε πελάτη εμφανίζονται στην κύρια φόρμα, και τα στοιχεία των πωλήσεων στην δευτερεύουσα φόρμα. Κλείνουμε την φόρμα. Παρατηρούμε, πως οι δύο νέες φόρμες, Πελάτες1, και Πωλήσεις1, έχουν δημιουργηθεί.