Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Αυτόματη εγγραφή πεδίου από άλλο πεδίο
Αυτό μου φαινόταν εύκολο και το άφησα, σήμερα που πήγα να το φτιάξω δεν μπορώ να το καταφέρω.. Τη Ακριβώς θέλω ... Εχω έναν πίνακα που σε ένα πεδίο (ΑΛΦΑ) παίρνει της τιμές Α , Β , Γ , Δ.... θέλω στον ίδιο πίνακα στο πεδίο (ΒΗΤΑ) να παίρνει αυτόματα τιμή Π.Χ. Εάν στο (ΑΛΦΑ) έχω Α στο (ΒΗΤΑ) να παίρνει την τιμή 1 Εάν στο (ΑΛΦΑ) έχω Β στο (ΒΗΤΑ) να παίρνει την τιμή 2 Εάν στο (ΑΛΦΑ) έχω Γ στο (ΒΗΤΑ) να παίρνει την τιμή 3 Σύνολο είναι 6 διαφορετικές τιμές... |
#2
| |||
| |||
Καλησπέρα, Έχω φτιάξει μια βάση η οποία δίνει μια λύση στο πρόβλημα που αναφέρεις. Αναφερώ πως η φόρμα περιέχει στο Event AfterUpdate μια γραμμή κώδικα Me.Val2 = Me.Val1.Column(1) Και πως στο σύνθετο πλαίσιο Val1 θα ήθελα να παρατηρήσεις τις ιδιότητες που έβαλα στα [Tab] δεδομένα στην προεύλεση γραμμής [Α;1;Β;2;Γ;3;Δ;4;Ε;5;ΣΤ;6] επέλεξα την Λίστα τιμών και στην [Tab] Μορφή Πλήθος στηλών 2 και Πλάτη στηλών 2εκ.;0εκ., Γραμμές λίστας 6. Αυτές είναι οι αλλαγές που έγιναν. |
#3
| |||
| |||
Μπράβο αυτό ήταν πέτυχε ..... Βασικά έκανα κάποιες μετατροπές διότι δεν με ενδιέφερε η συνεχόμενη λίστα που έβαλες και έβγαζε στην φόρμα στις λεπτομέρειες, (δεν κατάλαβα πώς το έκανες εμένα δεν την εμφανίζει).. Και έβαλα ένα κρυφό πλαίσιο κειμένου όπου παίρνει την τιμή και την δίνει στο πεδίο.. Βασικά με ενδιέφερε να ενημερώνεται το πεδίο διότι από εκεί έπαιρνα στοιχεία για μια έκθεση.. Ευχαριστώ πολύ.. |
#4
| ||||
| ||||
Καλησπέρα και από μένα! Εγώ φίλε Χρήστο(Free_Ghost) θα σου πρότεινα μια άλλη προσέγγιση για την περίπτωσή σου: Για να μην επαναλαμβάνεις τις τιμές Α-Ζ στον πίνακα ΑΛΦΑ, να δημιουργήσεις έναν νέο πίνακα (πχ tblAlfaNum) με δύο πεδία (πχ fldAlfaID και fldAlfa) έτσι ώστε το fldAlfaID να αντιστοιχεί στις τιμές 1-6 και να αποθηκεύεται μόνο αυτή η τιμή στον πίνακα ΑΛΦΑ. Έτσι θα μπορείς στο μέλλον να προσθέσεις αν θέλεις και άλλα πεδία στον πίνακα tblAlfaNum όπως για παράδειγμα μια περιγραφή για την κάθε τιμή Α-Ζ χωρίς να χρειάζεται να επέμβεις στον πίνακα ΑΛΦΑ. Αν δεν μπορείς να κάνεις κάτι τέτοιο, θα μπορούσες εναλλακτικά να δημιουργήσεις ένα ερώτημα επιλογής που να βασίζεται στον πίνακα ΑΛΦΑ όπως το παρακάτω: SELECT ΑΛΦΑ.*, InStr(1,"αβγδεζ",[fldAlfa]) AS [Number] FROM ΑΛΦΑ; (σου προτείνω να μετονομάσεις τον πίνακα ΑΛΦΑ σε tblAlfa…) Στη συνέχεια θα μπορείς να χρησιμοποιείς αυτό το ερώτημα ως προέλευση εγγραφών των φορμών και των εκθέσεών σου, χωρίς την ανάγκη αποθήκευσης υπολογιζόμενων τιμών στον πίνακα ΑΛΦΑ. Ελπίζω να βοηθάω και καλωσόρισες στο φόρουμ. Γιάννης
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
#5
| |||
| |||
Παράθεση:
Βασικά δεν είμαι πολύ μπασμένος στην Access και ίσως για αυτόν τον λόγο δεν τα κατανοώ, εγώ το έφτιαξα με τον παραπάνω τρόπο που ανέφερε ο φίλος kon73 δεν θα πείραζε όμως να μαθαίναμε και με άλλο τρόπο.. Εφόσων έχεις χρόνο και διάθεση γίνε λίγο πιο κατανοητός, η να το πώ αλλιώς με παράδειγμα για ατζαμήδες... Εγώ αυτό που ήθελα είναι να γράφω σε ένα πεδίο κάτι standar και να παίρνει ανάλογη τιμή ένα άλλο πεδίο όπως γράφω παραπάνω, και μου αρκεί και η eκδοση με το ερώτημα για να χρησιμοποιηθή για έκθεση..... |
#6
| ||||
| ||||
Φίλε Χρήστο καλησπέρα! Στο συνημμένο που ακολουθεί, όπως θα διαπιστώσεις, η τιμές 1,2,3... που αντιστοιχούν σε κάθε κατηγορία (Α, Β, Γ..) δεν αποθηκεύονται πουθενά αλλά υπολογίζονται σε χρόνο εκτέλεσης μέσω του προσαρμοσμένου πεδίου "Number" του ερωτήματος "qryALFA". Ο πίνακας "tblAlfaNum" διατηρεί της μοναδικές εγγραφές κάθε κατηγορίας (Α, Β, Γ..) μαζί με τις περιγραφές τους ενώ ο στον πίνακα "tblAlfa" το πεδίο "fldALFA" είναι εξαρτημένο κλειδί και συσχετίζεται με το πεδίο "fldAlfaChar" του πίνακα "tblAlfaNum" το οποίο είναι και πρωτεύον κλειδί. Άνοιξε τη φόρμα "flmALFA" και δες τα αποτελέσματα πατώντας τα κουμπιά. Ρίξ' του μια ματιά και για ότι απορίες έχεις εδώ είμαστε...
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
#7
| |||
| |||
Παράθεση:
Παράθεση:
Στην φόρμα μου έχω 12 πλαίσια κειμένου και δίπλα στο καθένα ένα κουμπί για να το στέλνει σε έκθεση, έχω όμως 12 ίδιες εκθέσεις... Δεν μπόρεσα στο ίδιο σημείο μιας έκθεσης να στέλνω απο 12 διαφορετικά πλαίσια κειμένου ανάλογα το κουμπί που πατάω.. |
#8
| ||||
| ||||
Παράθεση:
Αυτό που σε ξάφνιασε είναι ο πραγματικός κώδικας SQL (Structured Query Language - Δομημένη Γλώσσα Ερωτημάτων) των ερωτημάτων της Access (και όχι μόνο). Τα "κλασικά ερωτήματα" που αναφέρεις είναι απλά το οπτικό βοήθημα της Access για την "εύκολη" σύνταξη του κώδικα SQL. Η Access αποθηκεύει όλα τα ερωτήματα σε κώδικα SQL και όταν ζητάμε την προβολή σχεδίασης ενός ερωτήματος, η Access ανασχεδιάζει το πλέγμα με βάση τον κώδικα του ερωτήματος. Σου συνιστώ να αφιερώσεις λίγο χρόνο στην εξοικείωσή σου με αυτή τη γλώσσα εναλλάσσοντας συχνά τα παράθυρα προβολής ερωτημάτων από "Σχεδίασης" σε "SQL". Η δομή της είναι πολύ απλή και θα εξοικειωθείς γρήγορα και όταν μάθεις να συντάσεις τα ερωτήματα κατευθείαν σε κώδικα SQL, πίστεψέ με, το πλέγμα σχεδίασης θα σου τη δίνει στα νεύρα. Παράθεση:
φιλτράροντας το ερώτημα με βάση την τιμή του αντίστοιχου πεδίου Number και συνεπώς τις εγγραφές που εμφανίζονται στην έκθεση. Δεν φτιάχνουμε μια έκθεση για κάθε παράμετρο φιλτραρίσματος...! Κώδικας: stDocName = "rptALFA" DoCmd.OpenReport stDocName, acPreview, , "[Number]=" & Me!Number (χωρίς παραμέτρους) Κώδικας: stDocName = "rptALFA" DoCmd.OpenReport stDocName, acPreview Άνοιξε τον VBE (Alt+F11) για να δεις τον σχετικό κώδικα σε κάθε συμβάν "Click" του κάθε κουμπιού. Ελπίζω να σε διαφώτισα λιγάκι... Τα λέμε! Γιάννης
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
#9
| |||
| |||
Γιάννη αυτό με τα Ερωτήματα το εντόπισα την επόμενη αλλά λέω κάτσε μην το λες θα γίνεις δημοσίως ρεζίλη… Όσο για τις εκθέσεις δεν μπόρεσα να κατανοήσω πλήρως το παράδειγμα … εγώ πάντως υπολογίζω 12 εκθέσεις, για αυτό τον λόγο σου ανεβάζω ένα μίνι δείγμα από την εργασία που ετοιμάζω για την δουλειά μου, ώστε εάν γίνεται να μου πεις πώς μπορώ να αποφύγω της 12 φόρμες πάνω στο δείγμα μου… Στην φόρμα δίπλα από τις ημερομηνίες που παίρνει άδεια ο μισθωτός έχω βάλει ένα πλήκτρο (από 1 έως 12) όπου θα το πατάω και μέσω μιας Μακροεντολής θα εκτυπώνει την αντίστοιχη έκθεση που θα εφαρμόσω από το 1 έως το 12, τώρα έχω μόνο την μία έκθεση .. ( θα έκαμνα αντιγραφή για της άλλες με αντιστοίχηση των ερωτημάτων) Και όλα αυτά γιατί σε κάθε έκθεση θα πήγαινε διαφορετική περίοδος άδειας και δεν μπορούσα να δεσμεύσω διαφορετικά το πεδίο της εγγραφής στην έκθεση, για κάθε περίπτωση ( από 1 έως 12), οι εκθέσεις θα παίρνουν στοιχεία από τα 12 ερωτήματα… Ίσως σου φανούν αστεία αλλά με τα συγκεκριμένα πράγματα άρχισα περίπου τα φθινόπωρο να ασχολούμαι και όχι εντατικά ας το πούμε (λόγω έλλειψης χρόνου) πήρα ένα βιβλίο για Access, αλλά το βιβλίο λέει επιφανειακά πράγματα. Τη να πω εάν μπορείς, και έχεις χρόνο ρίξε μια ματιά.. Φιλικά Χρήστος... |
#10
| ||||
| ||||
Φίλε Χρήστο, απ' ότι βλέπω, η βάση σου χρειάζεται σχεδιασμό ...εκ νέου! Στον πίνακα "P_2010_M" διατηρείς όνομα, επώνυμο αλλά και ...ημέρες αδείας!!! Σε έναν πίνακα διατηρούμε στοιχεία τα οποία περιγράφουν αυστηρά το αντικείμενο το οποίο αποθηκεύουμε. Φαντάσου το αστυνομικό μας δελτίο ταυτότητας να έγραφε και πόσες ημέρες άδειας δικαιούμαστε...! Anyway, αύριο(ή μάλλον σήμερα) με το καλό, θα της ρίξω μια ματιά ώστε να μπω στο νόημα και ίσως προλάβω να επιστρέψω με κάποιο παράδειγμα... Εσύ στο εξής, σκέψου ποιες οντότητες πρέπει να διατηρούνται στη βάση σου (όπως πρόσωπα, υπάλληλοι, πληρωμές, τμήματα, άδειες κτλ) και τα στοιχεία της κάθε οντότητας ώστε να στήσουμε τους πίνακες σωστά από την αρχή. Όπως καταλαβαίνεις, έχουμε δρόμο μπροστά μας... Καλή εβδομάδα! Γιάννης
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Φόρμες ] Πεδίο που συμπληρώνεται αυτόματα αν υπάρχει η τιμή σε προηγούμενη εγγραφή. | dim.konst | Access - Ερωτήσεις / Απαντήσεις | 2 | 29-05-14 13:17 |
[ Φόρμες ] Εμφάνιση σε φόρμα εγγραφή από άλλο πίνακα. | octapus | Access - Ερωτήσεις / Απαντήσεις | 8 | 12-12-13 08:05 |
[VBA] Αλλάγη τιμών σε άλλο φύλλο (συνέχεια απο διαίρεση εγγραφή) | dalavouras | Excel - Ερωτήσεις / Απαντήσεις | 1 | 10-09-13 12:17 |
[ Φόρμες ] Αποθήκευση ενός πεδίου αθροίσματος σε άλλο πεδίο !!! | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 3 | 11-04-13 07:32 |
Δημιουργία πεδίου με εξάρτηση των δεδομένων από άλλο πεδίο | panagiotag | Access - Ερωτήσεις / Απαντήσεις | 6 | 07-11-11 10:31 |
Η ώρα είναι 07:36.