Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Στοιχεία απο πίνακα σε πίνακα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/634-stoixeia-apo-pinaka-se-pinaka.html)

deppy 23-06-10 07:05

Στοιχεία απο πίνακα σε πίνακα
 
Καλημέρα σε όλα τα παιδιά!
Θέλω να φτιάξω ένα γράφημα που να υπολογίζει τις παραγγελίες ανα μήνα. Έχω έναν πίνακα όπου εισάγονται όλα τα στοιχεία μιας παραγγελίας (ημ/νια, ειδος, τιμη κλπ κλπ).
Έχω φτιάξει ενα γράφημα επάνω σε αυτόν τον πίνακα, αλλά άν διαγράψεις μια εγγραφή, τροποιποιείται το γραφημα (φυσιολογικό...)
Θέλω να φτιάξω έναν πίνακα όπου θα κρατάει τις ημερομηνίες χωρις να επειρεάζεται απο τον αρχικό πίνακα. Δηλ αν διαγράφω μια παραγγελία στον πίνακα Α η ημερομηνία της να παραμένει στον πίνακα Β για να υπολογίζω το σύνολο των παραγγελιών ανα μήνα.
Ελπίζω να καταλάβατε...!
Ευχαριστώ.

Chris 23-06-10 09:43

Δεσποινα καλημερα
Μια λυση που θα σου προτεινα εναι να φτιαξεις ενα αντιγραφο του πινακα Α που θα το ονομασεις πινακας Β και κατοπιν ενα ερωτημα προσαρτησης οπου θα ενημερωνεις τον πινακα Β απο τα στοιχεια του πινακα Α ετσι και να διαγραψεις κατι απο τον Α δεν επηρεαζει τον Β. Κατοπιν πανω στο Β δημιουργησε το γραφημα που θελεις και θα εχεις παντα τα σωστα στοιχεια για τις παραγγελίες σου

deppy 23-06-10 10:00

Σε ευχαριστώ πολύ Χρήστο!

deppy 26-06-10 22:58

Έχω κάνει την αντιγραφή του πίνακα και το ερώτημα προσάρτησης.
Κάτι δεν κάνω καλά και οταν εκτελω το ερώτημα μου αντιγράφει όλες τις εγγραφές του πίνακα Α στον Β ξανα και ξανα (κάθε φορά που εκτελώ το ερώτημα).
Πώς θα γίνει να εκτελείται το ερώτημα και να μεταφέρονται μόνο οι καινούριες εγγραφές στον πίνακα Β?

atlasgr 27-06-10 01:01

Δέσποινα καλησπέρα

Μια λύση που σου προτείνω είναι η παρακάτω :

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

Αν δεν μπορείς να το κάνεις εσύ στείλε την βάση με τους πίνακες να στο φτιάξω. Δεν είναι παραπάνω από 10 λεπτά δουλειά.

Καλή συνέχεια

Tasos 27-06-10 02:20

1 Συνημμένο(α)
Καλημέρα!

Δείτε ένα παραδειγματάκι στο παρακάτω συνημμένο
όπου οι εγγραφές που δεν έχουν τσεκαριστεί, προσαρτώνται στον πίνακα "tblArchive",
κατόπιν τσεκάρονται για να αγνοηθούν και να μην προσαρτηθούν ξανά:

Φιλικά

Τάσος

nisgia 27-06-10 03:02

Καλημέρα και από μένα!

Με βάση το παράδειγμα του Τάσου, το ζητούμενο μπορεί να επιτευχθεί και με το παρακάτω ερώτημα προσάρτησης:
Κώδικας:

INSERT INTO tblArchive ( EntryID, EntryValue, EntryValue1 )
SELECT tblEntries.EntryID, tblEntries.EntryValue, tblEntries.EntryValue
FROM tblArchive RIGHT JOIN tblEntries ON tblArchive.EntryID = tblEntries.EntryID
WHERE (((tblArchive.EntryID) Is Null));

το οποίο επιστρέφει τις εγγραφές του πίνακα tblEntries που δεν υπάρχουν στον πίνακα tblArchive
και στη συνέχεια τις προσαρτά στον πίνακα tblArchive.

Οπότε, πριν το άνοιγμα του διαγράμματος, αρκεί η εκτέλεση (προγραμματιστικά) του παραπάνω ερωτήματος.

Φιλικά, Γιάννης.

deppy 28-06-10 13:27

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

kapetang 28-06-10 19:23

Γεια σας

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

Φιλικά/Γιώργος

Tasos 28-06-10 19:44

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

Καλό βράδυ!

Τάσος

kapetang 28-06-10 21:21

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

Φιλικά/Γιώργος

nisgia 29-06-10 00:13

Καλησπέρα στην ομάδα!

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

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

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

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

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

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

Τέλος, μπορεί να σου κάνω λίγο την καρδιά περιβόλι με τα παραπάνω αλλά πίστεψέ με…
να βοηθήσω θέλω.:angel:

Φιλικά, Γιάννης.

Tasos 29-06-10 00:59

Παράθεση:

Φίλε Τάσο, μάλλον δεν έγινα αντιληπτός.
Φυσικά και δε θα γίνεται καμία επεξεργασία άμεσα από το χρήστη στον πίνακα αρχείο (Β).
Ο χρήστης εργάζεται (προσθέτει, διαγράφει και τροποποιεί εγγραφές) στο βασικό πίνακα (Α).
Όμως αφού μεταφέρουμε από τον (Α) κάποιες εγγραφές στον πίνακα (Β) και τις σημειώσουμε στον (Α) ως αρχειοθετημένες, ενδέχεται ο χρήστης να τις τροποποιήσει (στον Α).
Τότε οι εγγραφές αυτές δε θα είναι ίδιες στον (Α) και τον (Β).
Για το λόγο αυτό προτείνω την ενημέρωση.
Γιώργο, εξετάζουμε το γεγονός ότι έχουμε έναν "πινάκα-αποθήκη" δηλ. τον Β ο οποίος φιλοξενεί δεδομένα που εισάγονται
από τον χρήστη όταν εκείνος κρίνει ότι είναι έτοιμα προς αρχειοθέτηση και όχι περεταίρω επεξεργασία!
Αυτό ήταν το ζητούμενο του θέματος.

Ο πίνακας Β δεν είναι ο "κλώνος" του πίνακα Α για να καταγράφει τις οποιεσδήποτε αλλαγές του δεύτερου.
Αν οι επεξεργασίες ή διαγραφές πρέπει να περνούν και στον πίνακα Β, τότε γιατί
να μην γίνονται κατευθείαν στον πίνακα Α; Ποιος ο λόγος ύπαρξης του πίνακα Β;

Mε άλλα λόγια θα αρκούσε ένας πίνακας (A). :sneaky2:

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

Φιλικά

Τάσος

kapetang 29-06-10 10:15

Καλημέρα

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

Υ.Γ
Γιάννη εκείνο το "καπετάν" είναι υπερβολικό.
Το σκέτο Γιώργος είναι μια χαρά.

Φιλικά/Γιώργος

Tasos 29-06-10 10:19

Σε κάναμε και 'Καπετάνιο' :dft010::dft010:

deppy 30-06-10 11:31

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

Tasos 30-06-10 11:58

Καλημέρα Δέσποινα!

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

Όσο για το πλήθος των εγγραφών δεν πρέπει να ανησυχείς εκτός και υπερβείς το όριο των 2 GB ανά Access αρχείο
που έχει καθορίσει η Microsoft.

Φιλικά

Τάσος


Η ώρα είναι 20:20.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2