Πινακεσ access-ενημερωση πεδιων

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
kostasd78
Δημοσιεύσεις: 3
Εγγραφή: 26 Ιούλ 2013 13:50
Τοποθεσία: ΚΑΡΕΑΣ

Πινακεσ access-ενημερωση πεδιων

Δημοσίευση από kostasd78 » 26 Ιούλ 2013 14:00

Καλησπέρα,

έχω το εξής πρόβλημα: Έχω 2 πίνακες Α και Β με μια κοινή στήλη id. Κάποιες στήλες του πίνακα Β ενημερώνονται με την εντολή DLOOKUP όταν καταχωρώ δεδομένα στη στήλη id. Παρόλα αυτά όταν αλλάξω κάποια δεδομένα στον πίνακα Α (ΌΧΙ στη στήλη id, αλλά σε μια από τις υπόλοιπες) δεν ενημερώνονται αυτόματα οι αντίστοιχες στήλες του πίνακα Β. Αντίθετα όταν πηγαίνω στον πίνακα Β και πληκτρολογώ ξανά σε μια γραμμή το id τότε είναι που ενημερώνονται και τα υπόλοιπα δεδομένα της γραμμής. Ουσιαστικά δηλαδή οι αλλαγές στον πίνακα Α δεν ενημερώνουν τις ήδη καταχωρηθείσες εγγραφές του πίνακα Β αλλά μόνο τις επόμενες. Ελπίζω να μην σας μπέρδεψα. Ευχαριστώ προκαταβολικά για οποιαδήποτε απάντηση.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πινακεσ access-ενημερωση πεδιων

Δημοσίευση από dva_dev » 26 Ιούλ 2013 15:53

Αν χρησιμοποιήσεις views (select queries) δεν μπορείς να κάνεις τη δουλειά σου;
Ισως αν μας εξηγήσεις τι θέλεις να κάνεις να σου προτείνει κάποιος κάτι.

kostasd78
Δημοσιεύσεις: 3
Εγγραφή: 26 Ιούλ 2013 13:50
Τοποθεσία: ΚΑΡΕΑΣ

Πινακεσ access-ενημερωση πεδιων

Δημοσίευση από kostasd78 » 26 Ιούλ 2013 16:11

dva_dev έγραψε:Αν χρησιμοποιήσεις views (select queries) δεν μπορείς να κάνεις τη δουλειά σου;
Ισως αν μας εξηγήσεις τι θέλεις να κάνεις να σου προτείνει κάποιος κάτι.
μάλλον δεν εξήγησα καλά αυτό που ψάχνω. Ουσιαστικά έχω συνδέσει 2 πίνακες (Α και Β).
Ο Α έχει π.χ. customer id,address και phone number. Ο Β έχει customer id, address και sales. Με την εντολή dlookup έχω ορίσει ότι η στήλη address του πίνακα Β συμπληρώνεται αυτόματα (με βάση την τιμή του πίανακα Α)όταν καταχωρήσω στον πίνακα Β το customer id. Μέχρι εδώ όλα καλά. Αν όμως το address ενός customer αλλάξει και καταχωρήσω την αλλαγή στον πίνακα Α, δεν διορθώνονται αυτόματα οι τιμές address στις ΥΠΑΡΧΟΥΣΕΣ ΤΙΜΕΣ του συγκεκριμένου customer στον πίνακα Β. Παρά μόνο καταχωρείται η νέα διεύθυνση στις επόμενες καταχωρήσεις του πίνακα. Έτσι στον πίνακα Β έχω πολλές καταχωρήσεις με το ίδιο customer id αλλά με διαφορετικό address.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πινακεσ access-ενημερωση πεδιων

Δημοσίευση από dva_dev » 26 Ιούλ 2013 16:50

Μάλλον μου φαίνεται ότι στον πίνακα Β δεν χρειάζεται να βάλεις το πεδίο address.
Αν θέλεις να το βλέπεις σε κάποιο report ίσως τότε χρειάζεσαι ένα view σαν αυτό:

Κώδικας: Επιλογή όλων

select a.customerid, a.address, a.phone, b.sales
from a inner join b on a.customerid = b.customerid
Βασικά calculated fields η access (μέχρι την 2007 που έχω δουλέψει τουλάχιστον) δεν υποστηρίζει και μετά, από τη στιγμή που το πεδίο είναι persistent, ότι τιμή έχει πάρει στη βάση μετά το insert αυτή είναι. Δεν την ξαναϋπολογίζει.

Αντίθετα τα views (και τα select queries) κάνουν ακριβώς αυτό το πράγμα. Κάθε φορά που είναι να δείξουν ένα πεδίο ή μια τιμή, αν αυτό περιέχει υπολογισμό ή συνάρτηση μέσα θα κάνουν τον υπολογισμό.

kostasd78
Δημοσιεύσεις: 3
Εγγραφή: 26 Ιούλ 2013 13:50
Τοποθεσία: ΚΑΡΕΑΣ

Πινακεσ access-ενημερωση πεδιων

Δημοσίευση από kostasd78 » 26 Ιούλ 2013 19:25

thanks για την απάντηση αλλά βρήκα λύση τελικά. Στην επιλογή "συμβάν"είχα τσεκάρει μόνο "μετά από ενημέρωση".

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες