Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Αυτόματη ενημέρωση πεδίων φόρμας

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 21-06-12, 09:09
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή Αυτόματη ενημέρωση πεδίων φόρμας

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

Έχω 1 φόρμα έστω frmParent και την subfrmParent που είναι η υποφόρμα της. Η frmParent έχει 2 textboxes tb1 kai tb2

ανάλογα με την τιμή που πληκτρολογούμε στο tb1 παίρνει τιμή το tb2. Θα ήθελα η τιμή του tb2 να προστίθεται σε κάποιο TextBox έστω subfrmParent.tb2 της ενσωματωμένης φόρμας.

Υπόψιν ότι όλα τα πεδία κατά το άνοιγμα της φόρμας παίρνουν αρχικές τιμές από τη βάση αλλά δεν είναι bound σε κάποιο πίνακα. Όταν κλείνω τη φόρμα ενημερώνω τότε τα κατάλληλα πεδία με recordset

Υπάρχει κάποιος τρόπος να φτιάξουμε κάτι τέτοιο; Πχ. στο Excel όταν βάλεις τύπο σε ένα κελί και ενημερώσεις τα κελιά που περιέχει ο τύπος, ενημερώνεται και το κελί προορισμού

Ευχαριστώ
Απάντηση με παράθεση
  #2  
Παλιά 21-06-12, 10:36
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Γιάννη, καλωσόρισες στην παρέα μας.

Για την υλοποίηση του ζητούμενου δοκίμασε τα εξής:

1) Στην προέλευση στοιχείου ελέγχου του πλαισίου κειμένου Tb2 της δευτερεύουσας φόρμας subfrmParent βάλε τον τύπο: =[Forms]![frmParent]![Tb2]

2) Στο συμβάν μετά την ενημέρωση του πλαισίου κειμένου Tb2 της κύριας φόρμας frmParent, γράψε τον κώδικα: Me!subfrmParent.Form.Tb2.Requery

Ο κώδικας χρειάζεται για να ενημερώνεται αυτόματα το Tb2 της δευτερεύουσας φόρμας από το Tb2 της κύριας.

Είναι σαν να περνούμε, στο excel, από τον χειροκίνητο υπολογισμό στον αυτόματο.

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

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #3  
Παλιά 21-06-12, 10:41
Όνομα: Νικόλας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-11-2011
Μηνύματα: 17
Προεπιλογή

Καλημέρα

Γιάννη καλώς μας ήλθες...
Κάνε μια συμπίεση και ενδεχομένως μια προσαρμογή της εφαρμογής σου (Όχι ευαίσθητα δεδομένα) και ανέβασέ την στο Forum. Ότι ζητάς γίνεται αλλά είναι προτιμότερο κάποιος να στο φτιάξει παρά να περιγράψει βήμα - βήμα πως γίνεται.
Περιμένουμε να σε διαβάσουμε.
Φιλικά
Νικόλας

ΩΧ ! Συγνώμη Γιώργη...
Απάντηση με παράθεση
  #4  
Παλιά 21-06-12, 11:44
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

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

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

Τότε ανοίγει η φόρμα frmProcessEmpl. Αυτή η φόρμα διαβάζει από τη ΒΔ για την τρέχουσα περίοδο τις τιμές που αφορούν την επιλεγμένη ημερομηνία για τον τρέχοντα εργαζόμενο και τις αναλύει ανά κατηγορία πχ. υπερωρίες, πρόσθετη εργασία κλπ. Η φόρμα δεν είναι bound επικοινωνεί με recordsets.

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

Ο χρήστης πρέπει να μπορεί να μεταβάλλει τις ώρες εργασίας ανα μέρα, το πρόγραμμα να του υπολογίζει υπερωρίες, υπερεργασία κλπ και να ενημερώνεται η ΒΔ. Αυτό το κομμάτι γίνεται μια χαρά.

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

Η λύση που πρότεινε ο kapetang δεν με αφήνει να φορτώνω τις αρχικές τιμές με recordset γιατί κάνω το TextBox bound.

Σκέφτηκα να βάλω πχ. στην subfrmqSelectAthrWeek στο [prosthetiVal] τον τύπο
Κώδικας:
 =[Forms]![frmProcessEmpl]![tbProstheti]+DLookUp("prosthetiVal";"athroistes_week";"[athroistes_week]![weekNo]=" & getWeekid())
όπου το getWeekid() είναι ένα global function που μου επέτρεπε να βρώ το id της βδομάδας (και τώρα που το βλέπω χρειάζεται στα κριτήρια και τον Αρ. Κάρτας του εργαζόμενου ).

Ποιο είναι το πρόβλημα τώρα: Αν ο χρήστης ανοίξει την ίδια ημνία τον ίδιο εργαζόμενο, θα φορτώσω στη φόρμα στο tbProstheti την (μη μηδενική) τιμή που είχε περαστεί γι την πρόσθετη εργασία σε προηγούμενη χρονική στιγμή, οπότε στο subfrmqSelectAthrWeek.Form.prosthetiVal είναι σαν να το εμφανίζω 2 φορές

Ελπίζω να πήρατε μια ιδέα του τί θέλω να κανώ. Αν έχετε χρόνο ρίξτε μια ματιά ευχαριστώ εκ των προτέρων!

Γιάννης
Συνημμένα Αρχεία
Τύπος Αρχείου: zip vardies_2.zip (217,6 KB, 211 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 22-06-12, 12:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Αγαπητέ Γιάννη, ομολογώ ότι μπερδεύτηκα.

Στο προηγούμενο μήνυμά σου ζητούσες να ενημερώνεται αυτόματα ένα πεδίο μιας δευτερεύουσας φόρμας, από κάποιο πεδίο της κύριας φόρμας.

Γράφεις:

Παράθεση:
Υπάρχει κάποιος τρόπος να φτιάξουμε κάτι τέτοιο; Πχ. στο Excel όταν βάλεις τύπο σε ένα κελί και ενημερώσεις τα κελιά που περιέχει ο τύπος, ενημερώνεται και το κελί προορισμού
Η λύση που πρότεινα ήταν μια υλοποίηση του ζητούμενου και μια προσομοίωση αυτής της λειτουργίας του excel.

Στο δεύτερο μήνυμά σου γράφεις:

Παράθεση:
Η λύση που πρότεινε ο kapetang δεν με αφήνει να φορτώνω τις αρχικές τιμές με recordset γιατί κάνω το TextBox bound.
Και παρακάτω:

Παράθεση:
Σκέφτηκα να βάλω πχ. στην subfrmqSelectAthrWeek στο [prosthetiVal] τον τύπο.....
Αν βάλλεις στο πεδίο της δευτερεύουσας φόρμας τύπο (όπως στη λύση που σου πρότεινα) δε θα γίνει το πεδίο (όπως λες) bound και δε θα έχεις το ίδιο πρόβλημα;

Γενικά δεν μπόρεσα να αντιληφθώ πλήρως τον τρόπο υπολογισμού των διάφορων κατηγοριών εργασίας κατά εργαζόμενο και ημερομηνία και τη γενικότερη λογική της ΒΔ.

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

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

Τελευταία επεξεργασία από το χρήστη kapetang : 25-06-12 στις 10:24.
Απάντηση με παράθεση
  #6  
Παλιά 22-06-12, 12:54
Όνομα: Νικόλας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-11-2011
Μηνύματα: 17
Προεπιλογή

Καλημέρα

Είναι πράγματι "ανορθόδοξος" ο τρόπος ανάπτυξης της εφαρμογής του φίλου μας.
Φίλτρα ήμερομηνιών κατά την φάση εισαγωγής δεδομένων.
Φόρμες εμφάνισης στατιστικών στοιχείων να συνυπάρχουν με φόρμα εισαγωγής στοιχείων.
Φόρμες που ο φίλος μας βάφτησε υποφόρμες, χωρίς να είναι επι της ουσίας.
Καμμιά εκμετάλευση των δυνατοτήτων της access...

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

Δεν μπορώ να προσθέσω κάτι άλλο...

Φιλικά
Νικόλας
Απάντηση με παράθεση
  #7  
Παλιά 25-06-12, 08:39
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

Καλημέρα, όντως είναι αρκετά μπερδεμένος ο τρόπος ανάπτυξης

Θέλω να κάνω 2 γενικότερης φύσης ερωτήσεις
Παράθεση:
Αρχική Δημοσίευση από eratosthenis Εμφάνιση μηνυμάτων
Φίλτρα ήμερομηνιών κατά την φάση εισαγωγής δεδομένων.
Θα ήθελα να εισάγω/διορθώνω στοιχεία που αφορούν συγκεκριμένη ημερομηνία. Αυτό πως μπορεί να γίνει χωρίς φίλτρο ημερομηνίας κατά την εισαγωγή στοιχείων;

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

Ευχαριστώ για τη βοήθεια
Γιάννης
Απάντηση με παράθεση
  #8  
Παλιά 25-06-12, 14:13
Όνομα: Νικόλας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-11-2011
Μηνύματα: 17
Προεπιλογή

Καλημέρα

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

Αυτά αγαπητέ μας Γιάννη

Με εκτίμηση
Νικόλας

Τελευταία επεξεργασία από το χρήστη Meteora : 25-06-12 στις 16:32.
Απάντηση με παράθεση
  #9  
Παλιά 25-06-12, 14:50
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

Έγινε Νίκο ευχαριστώ για τις συμβουλές! Θεώρησα καλό να κάνω το φιλτράρισμα με ημερομηνία δεδομένου ότι ο χρήστης που θα κάνει το data entry έχει τη λογική αλληλουχία στο μυαλό του ότι επιλέγω την ημερομηνία και το πρόσωπο που θέλω να μεταβάλλω και μετά συμπληρώνω τα στοιχεία για το συγκεκριμένο πρόσωπο τη συγκεκριμένη ημερομηνία. Εν τούτοις η ημερομηνία όντως μπορεί να συμπληρώνεται μαζί με τα επόμενα στοιχεία...

Τώρα σε ότι αφορά την παρουσίαση συγκεντρωτικών στοιχείων υποθέτω πως θα πρέπει να αποδεσμευτεί από την εισαγωγή δεδομένων και να γίνεται για παράδειγμα στην γονική φόρμα της φόρμας που κάνει εισαγωγή δεδομένων.

Ευχαριστώ και καλό μεσημέρι
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
ενημέρωση πεδίων με το κλείσιμο της κύριας φόρμας γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 0 09-06-14 15:03
[ Πίνακες ] Αυτόματη ενημέρωση πεδίων μεταξύ πινάκων gpapad Access - Ερωτήσεις / Απαντήσεις 2 01-06-14 11:31
Αυτόματη ενημέρωση πεδίων μεταξύ δύο πινάκων marpapa Access - Ερωτήσεις / Απαντήσεις 5 23-05-12 11:48
Αυτόματη ενημέρωση πεδίων σε σύνθετο πλαίσιο ndplus Access - Ερωτήσεις / Απαντήσεις 2 07-02-10 00:59


Η ώρα είναι 21:26.