Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Αυτόματη ενημέρωση πεδίων μεταξύ δύο πινάκων
Γεια σας, Έχω δημιουργήσει δυο πίνακες. Στον πρώτο πίνακα υπάρχουν μοναδικές εγγραφές με βάση το πεδίο phone. Ο δεύτερος πίνακας έχει διπλοεγγραφές (με κριτήριο το τηλέφωνο). Θέλω να δημιουργήσω έναν τρίτο πίνακα που να εισάγονται οι εγγραφές του πρώτου, αλλά τα πεδία που είναι κενά να ενημερώνονται από τον δεύτερο, αν είναι ενημερωμένα. Για παράδειγμα, στον πίνακα ένα η εγγραφή με id 1, έχει κενό το πεδίο ipeuthinos. Θέλω να το ενημερώνει από τον πίνακα δυο που υπάρχει, καθώς να επαναλαμβάνεται η ίδια διαδικασία και για τα υπόλοιπα πεδία που είναι κενά. Προσπάθησα να το κάνω χειροκίνητα με αντιγραφή - επικόλληση, αλλά οι εγγραφές είναι πάρα πολλές. Σας επισυνάπτω ένα παράδειγμα με τους τρεις πίνακες. Το αποτέλεσμα θέλω να είναι όπως στον τρίτο πίνακα. Ευχαριστώ, Μαρία |
#2
| |||
| |||
Καλησπέρα/Καλημέρα Μαρία θα σου πρότεινα να εργαστείς ως εξής: 1) Να δημιουργήσεις ένα αντίγραφο της ΒΔ. 2. Να τρέξεις το ερώτημα QRYCreateTable για να δημιουργηθεί ένας βοηθητικός πίνακας (TableHLP) με μοναδικές τιμές στα πεδία. Επειδή για το ίδιο KatalimataID υπάρχουν πολλές τιμές στα άλλα πεδία επιλέγεται η max που ανταποκρίνεται καλύτερα στο ζητούμενο. 3 Αφού δημιουργηθεί ο πίνακας TableHLP τρέξε το ερώτημα QRYUpadate που ενημερώνει κατάλληλα τα πεδία του πίνακα P1. Γιώργος |
#3
| |||
| |||
Γεια σας, Ευχαριστώ για την απάντηση. Δεν θέλω να αλλοιώνει τα δεδομένα του p1 (γιατί τα έχω ήδη διορθώσει), αλλά όπου το πεδίο είναι κενό και είναι συμπληρωμένο στον p2 να το προσθέτει. Αν παρατηρήσετε στον πίνακα που δημιουργείται από το ερώτημά σας, αλλάζει π.χ. το πεδίο category και μερικά άλλα. Ενώ το πεδίο category είναι συμπληρωμένο στον p1, στις περισσότερες εγγραφές το επιστρέφει κενό και έτσι έχει μεγάλες απώλειες. Κατά την γνώμη μου, θα ήταν καλύτερα να γίνει με VBA. Δηλαδή, να παίρνει βάση του p1 και ανά εγγραφή τα πεδία που είναι κενά να τα συμπληρώνει από το p2. Αν κάποιο πεδίο της συγκεκριμένης εγγραφής δεν είναι κενό να το προσπερνάει. Μπορεί να με βοηθήσει κάποιος; Ευχαριστώ |
#4
| |||
| |||
Καλησπέρα Μαρία, είτε με κώδικα είτε με ερωτήματα θα πρέπει να ξεκαθαρίσει το ακόλουθο πρόβλημα. Στον πίνακα p2 Diploegrafes πχ στο πεδίο CatalimataID με τιμή 9 βρίσκουμε τις ακόλουθες 4 τιμές για το πεδίο Comp_name (ΣΟΥΛΗ ΓΕΩΡΓΙΟΣ ΤΟΥ ΠΑΝΑΓΙΩΤΗ, ΣΟΥΛΗ ΜΑΡΙΑ ΤΟΥ ΓΕΩΡΓΙΟΥ, ΤΣΑΚΟΥ ΔΙΟΝΥΣΙΑ ΤΟΥ ΓΕΩΡΓΙΟΥ, ΤΣΟΧΑΝΤΑΡΗΣ ΕΥΑΓΓΕΛΟΣ Α.Ε, ΣΟΥΛΗ ΑΓΓΕΛΙΚΗ ΤΟΥ ΓΕΩΡΓΙΟΥ). Το ίδιο γίνεται και σε άλλα πεδία. Θα πρέπει συνεπώς να διευκρινιστεί ποια είναι η σωστή τιμή και να προσδιοριστεί με ποια κριτήρια θα επιλέγεται. Στη λύση, που έδωσα επιλέγεται η max. Η προηγούμενη προσέγγιση δόθηκε για να αποτελέσει μια βάση για ξεκίνημα και προβληματισμό. Στη ΒΔ, που επισυνάπτω, η εργασία αυτοματοποιήθηκε και ταυτόχρονα αποτρέπονται οι αλλαγές όταν υπάρχουν τιμές στον πίνακα P1. Η ενημέρωση γίνεται από τη φόρμα frmUpdateP1 πατώντας το σχετικό κουμπί. Γιώργος |
#5
| |||
| |||
Καλησπέρα Γιώργο, Ενδεχομένως να μην έχω διατυπώσει σωστά αυτό που θέλω. Θέλω να κρατάει τις τιμές των πεδίων του p1 και να συμπληρώνει μόνο όποιο πεδίο είναι κενό. Στο συγκεκριμένο παράδειγμα να προσπερνάει το comp_name, γιατί αυτό είναι το σωστό. Αυτά που λείπουν από την συγκεκριμένη εγγραφή είναι ο ipeuthinos, το zipcode και το city, που υπάρχουν στον p2 με id 22. Όλα τα υπόλοιπα να τα παρακάμπτει. Δεν ξέρω αν αυτή την φορά το περιέγραψα σωστά. Αν θέλεις κάποια επιπλέον διευκρίνηση πες μου. Ευχαριστώ για τον χρόνο σου. |
#6
| |||
| |||
Καλημέρα Μαρία, έχω αντιληφθεί το ζητούμενο. Το πρόβλημα που επισήμανα είναι το εξής: Στον πίνακα P1 το πεδίο WebSite δεν έχει τιμές. Αν πάμε να τις πάρουμε από τον P2 βλέπουμε ότι για το κατάλυμα με αριθμό 9 υπάρχουν δύο δικτυακές διευθύνσεις ("www.eleas.gr", "http://www.eleas.gr" ). Ποιά είναι η σωστή και πώς θα την εντοπίσει το πρόγραμμα; Αυτό μπορεί να συμβαίνει και σε άλλα πεδία. Έδωσα μια λύση επιλέγοντας τη μέγιστη τιμή. Η ΒΔ που ανέβασα στο προηγούμενο μήνυμα δίνει τη λύση που θέλεις, αλλά ξέχασα να διαγράψω από τη βάση ένα ερώτημα (QRYUpadate) με αποτέλεσμα να εκτελείται και να δίνει λάθος αποτελέσματα. Στη ΒΔ που επισυνάπτω το αφαίρεσα. Κάνε δοκιμές (πάτησε το κουμπί και δες πως συμπληρώνεται ο πίνακας P1), πιστεύω ότι είναι αυτό που θέλεις. Γιώργος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Πίνακες ] Αυτόματη ενημέρωση πεδίων μεταξύ πινάκων | gpapad | Access - Ερωτήσεις / Απαντήσεις | 2 | 01-06-14 11:31 |
Ένωση πινάκων - αυτόματη ενημέρωση | ΧΟΥ | Excel - Ερωτήσεις / Απαντήσεις | 1 | 13-03-13 18:33 |
[ Φόρμες ] Αυτόματη ενημέρωση πεδίων φόρμας | ypanagis | Access - Ερωτήσεις / Απαντήσεις | 8 | 25-06-12 14:50 |
Αυτόματη Παράλληλη Συμπλήρωση Πεδίων 3 Πινάκων | Leader | Access - Ερωτήσεις / Απαντήσεις | 5 | 27-12-11 14:39 |
Η ώρα είναι 21:47.