![]() |
Αλλαγή DefaultValue Φίλοι μου γειά σας και πάλι, Προσπαθώ να βρώ κάποιο τρόπο για να μπορώ μέσω κάποιας φόρμας και ενός Unbound να αλλάζω το DefaultValue σε ένα δεύτερο Unbound object. Δηλαδή: Σε μια φόρμα υπάρχουν δύο πεδία (το Field1 & Field2) τα οποία όπως είπα δεν προέρχονται απο κάποιο πίνακα, είναι δηλαδή unbound. θέλω εφόσον καταχωρήσω οποιαδήποτε τιμή στο πεδίο Field1 να αλλάζει το DefaultValue στο πεδίο Filed2. Αν και έχω βρεί τρόπο να το κάνω αυτό μέ μια απλά γραμμή του πάρα κάτω κώδικα στο After Update του πρώτου πεδίου (Me.Field2.DefaultValue = 2 πχ) εντούτις εφόσον κλείσει η φόρμα και ξανα ανοίξει δεν μένει η τιμή που προκαθόρισα. Τα φώτα σας και όποια ιδέα για βοήθεια ευπρόσδεκτη. |
Καλησπέρα σε όλους Γιώργο αν κατάλαβα καλά Κώδικας: Private Sub field1_AfterUpdate() |
1 Συνημμένο(α) Καλησπέρα Νάσο και ευχαριστώ για την πρόθεση να βοηθήσεις, Ωστόσο, μάλλον δεν έχω περάσει το σωστό μήνυμα τι ακριβώς ζητώ και για αυτό τον λόγο επανέρχομαι επισυνάπτωντας ένα παράδειγμα μέσα στο οποίο περιγράφω αναλυτικά τι θέλω να κάνω και για ποιο λόγο. Ενημερωτικά Νάσο δεν δούλεψε η λύση που προτείνεις εφόσον: 1. Αφενώς μέν ενημερώνεται το δεύτερο πεδίο με την τιμη του πρώτου 2. Αφετέρου δε, εφόσον κλείσεις την φόρμα και την ανοίξεις και πάλι στο δεύτερο πεδίο δεν αποθηκεύεται το DefaultValue που δώσαμε πρίν απο το πρώτο πεδίο.. Ελπίζω να βρεθεί κάποια λύση... Σε κάθε περίπτωση ευχαριστώ και πάλι |
Καλημέρα σε όλους αφού η τιμή DefaultValue αλλάζει συνεχώς πρέπει κάπου να αποθηκεύεται. Μια λύση είναι να την αποθηκεύουμε σε έναν βοηθητικό πίνακα πχ t_temp με πεδία id και my_Value οπότε με κάθε αλλαγή να ενημερώνεται το πεδίο my_Value. με [id]=1 Με το άνοιγμα της φόρμας Me.Field2.DefaultValue =DLookup("t_temp", "my_Value]", "[id]= 1") Με κάθε αλλαγή του Field1 δε να γίνεται UPDATE της νέας τιμής του Field1 στο πεδίο my_Value στον πίνακα t_temp με id=1 Ελπίζω να βοήθησα Φιλικά, Δημήτρης |
Δημήτρη καλημέρα και σε ευχαριστώ πολύ για το ενδιαφέρον φίλε μου, Η λύση που προτείνεις είναι γνωστή σε εμένα, το πρόβλημα όμως ειναι ότι ΔΕΝ θελω να υπάρχει πίνακας στον οποίο να αποθηκεύονται οι τιμές..! Εδώ είναι το θέμα..! Με την χρήση πίνακα υπάρχουν δεκάδες λύσεις, αν θέλεις διάβασε ξανά την πρώτη αναρτηση μου για να καταλάβεις τι ακριβώς χρειάζομαι. Σε κάθε περίπτωση σε ευχαριστώ πάντως |
1 Συνημμένο(α) Καλησπέρα σε όλους. Γιώργο αν κατάλαβα καλά θέλεις το field2 να έχει την τελευταία τιμή του field1 όταν ανοίξει η φόρμα χωρίς πίνακα. Μια λύση είναι με χρήση Public Const και αλλαγή της τιμής της με κώδικα όταν ενημερώνετε το field1 Δες το συνημμένο. Ελπίζω να βοήθησα Φιλικά, Δημήτρης |
Δημήτρη σε ευχαριστώ πολύ Ακριβως αυτό ζητώ φίλε μου. Θα κάνω τις δοκιμές μου στην πραγματική βάση και θα επανέλθω σε περίπτωση που αντιμετωπίσω καποιο θέμα. Νάσαι καλά. |
Καλησπέρα Δημήτρη και σε όλους τους φίλους του φόρουμ, Δημήτρη η λύση που προτείνεις δουλεύει μια χαρά μόνο που υπάρχει ένα μικρό αλλά σημαντικό πρόβλημα, για να πάρει την νέα τιμή το πεδίο σαν DefaultValue πρέπει να κλείσω την φόρμα και να την ξανα ανοίξω και πάλι.. Μπορεί να γίνει κάτι έτσι ώστε να αποφύγω το κλείσιμο της φόρμας? Επίσης, ένα άλλο σημαντικό που θα εκτιμούσα εαν μπορούσε κάποιος να βοηθήσει είναι το γεγονός ότι αυτή η διαδικασία (DefaultValue) πρέπει να γίνεται σε περίπου 10 πεδία...άρα σε αυτή την περίπτωση απλά κάνω αντιγραφη των modules με διφορετική ονομασία για κάθε πεδίο ξεχωριστά ή υπάρχει κάποιος άλλος τρόπος?? Ευχαριστώ |
1 Συνημμένο(α) Καλησπέρα Καταρχήν η ιδιότητα DefaultValue ενεργοποιείται μόνο για νέα δεδομένα. Για μια λύση δες συνημμένο. Φιλικά, Δημήτρης |
1 Συνημμένο(α) Καλημέρα φίλε Δημήτρη και σε ευχαριστώ και πάλι για το ενδιαφέρον να βοηθήσεις, Η δεύτερη βάση Δημητρη δεν κατάλαβα πως δουλεύει..(?) Αν θές μου λές λίγο το σκεπτικό? Όπως και να έχουν τα πράγματα, δεν είναι αυτό που εννοούσα όταν είπα ότι θέλω αυτη η διαδικασία να επαναλαμβάνεται σε πολλά πεδία... Αναρτώ ένα παράδειγμα που ετοίμασα έτσι ώστε να γίνω πιο κατανοητός και θα εκτιμούσα εάν είχα ακόμη λίγη βοήθεια.. Σε ευχαριστώ |
1 Συνημμένο(α) Καλημέρα σε όλους φίλε Γιώργο δυστυχώς στον υπολογιστή εδώ έχει μόνο office 2003 και δεν μπορώ να δω το αρχείο σου και δεν ξέρω τι ακριβώς θέλεις θα το δω από Δευτέρα. Καταρχήν διόρθωσα κάτι στον κώδικα και πρόσθεσα τη συνάρτηση Public Function d_f() Πως δουλεύει; στη module mdlDefaultValue υπάρχουν Public Const Default_Value= τρέχουσα τιμή του Field1 AfterUpdate και η συνάρτηση d_f = Public Const Default_Value στην σχεδίαση της φόρμας frm_test στις ιδιότητες του πεδίου Field2 στην προεπιλεγμένη τιμή γράφουμε =d_f() οπότε η προεπιλεγμένη τιμή του Field2 είναι ή η τελευταία τιμή που είχε το Field1 ή η τρέχουσα τιμή του Field1 μετά την ενημέρωση. Το Field3 δεν παίζει κανένα ρόλο, υπάρχει για να βλέπεις τις αλλαγές στην προεπιλεγμένη τιμή του Field2 Η λειτουργία της προεπιλεγμένης τιμής όπως την έχω καταλάβει εγώ. Αν το Field2 είναι μη δεσμευμένο η αλλαγή της προεπιλεγμένης τιμής του δεν εμφανίζεται κάθε φορά που αλλάζει αλλά μόνο η αρχική τιμή που πήρε πχ να μου εμφανίζει εγγραφή που έκλεισε όμως αν αλλάξει η προεπιλεγμένη τιμή του Field2 δεν θα μεταβεί σε άλλη εγγραφή αυτό θα γίνει αν κλείσω και ξανανοίξω τη φόρμα. Αν το Field2 είναι δεσμευμένο και πάμε να προσθέσουμε νέα εγγραφή τότε εμφανίζεται η προεπιλεγμένη τιμή του Field2. Ελπίζω να βοήθησα Φιλικά, Δημήτρης |
Καλημέρα Δημήτρη και σε ευχαριστώ που ασχολείσε με το θέμα μου. Το τί προσπαθώ να πετύχω είναι: Στην βάση που φτιάχνω έχω μια φόρμα η οποία εφόσον ανοίξει η βάση ανοίγει και αυτή και είναι hidden. Σε αυτή την φόρμα υπάρχει το πεδίο [InsDate] το οποίο παίρνει την εκάστοτε ημερομηνία (=Date() ) ώς προεπιλεγμένη τιμή. Υπάρχει επίσης και ενα αλλο πεδιο το [RegDays] το οποιο ουσιαστικα παιρνει τιμη αναλογα με το τι θα ωρισω εγω ως προεπιλεγμενη μεσω μιας δευτερης φορμας. Το ζητουμενο ειναι: Μεσω της δευτερης φορμας που αναφερα μεσα στην οποια υπαρχουν 2 αδεσμευτα πεδια θελω να ωριζω εγω μια νεα ημερομηνια και εναν αριθμο ημερων και αμεσως να ωριζονται ως προεπιλεγμενες τιμες στα αναλογα πεδια που αναφερα και που υπαρχουν στην πρωτη φορμα. Δηλαδη να μπορω να επιλεγω μια νεα ημερομηνια στην δευτερη φορμα και να αλλαζει η προεπιλεγμενη τιμη του [InsDate] που βρισκεται οπως ειπα στην πρωτη φορμα. Θα κανω το ιδιο και για το δευτερο πεδιο, το τριτο, τεταρτο κλπ, κλπ Με τον κωδικα που μου εδωσες αντιλαμβανεσαι οτι αυτη η διαδικασια ειναι εφικτο να γινει μονον για ενα πεδιο....ετσι κι εγω στις αμετρητες προσπαθειες που κανω για να βρω λυση στο θεμα, σκεφτηκα οτι εαν αντιγραψω τα modules vba που μου εδωσες και τους δωσω παρομοια ονοματα και αλλαζωντας καποιες γραμμες στον κωδικα, θα μπορουσα στην ουσια να ειχα ενα σετ mudules για να κανω αυτη την δουλεια σε καθε πεδιο που θελω.. Εκανα λοιπον διαφορες δοκιμες με την πιο πανω λογικη και απο καποτε δουλευει η λυση και καποτε οχι. Σημειωσε οτι οταν δεν δουλευει η λυση αυτη η access μου δινει μηνυματα να σταματησω τον κωδικα..(?) Υποψη οτι οι γνωσεις μου σε vba ειναι πολυ περιορισμενες και για αυτο θα ζητουσα την κατανοηση σου εαν σε ταλαιπωρω... Δες λιγο το παραδειγμα που ανεβασα να μπορεσεις να καταλαβεις τι εκανα και θα εκτιμησω εαν εμπαινες στον κοπο για λιγη παραπανω διαφωτιση και βοηθεια.. Σε ευχαριστω και παλι... (Υπνο τωρα διοτι το μυαλο εχει κολλησει☺) |
Επαναφέρω το θέμα με την μορφή υπενθύμισης για όποιο φίλο απο το φόρουμ θα μπορούσε να με βοηθήσει.... ¨Οπως καταλαμβαίνετε το μυαλό έχει κολλήσει εδώ και αρκετές ημέρες σε αυτό το πρόβλημα... Φιλικά, |
1 Συνημμένο(α) Καλησπέρα σε όλους τους φίλους, Αντιμετωπίζω το εξής πρόβλημα το οποίο εδώ και μέρες αποτελεί πραγματικά μια σπαζοκεφαλιά και ένα πραγματικό βουνο η επίλυση του, και θα εκτιμούσα εάν κάποιο πιο έμπειρο μέλος του φόρουμ μπορούσε να βοηθήσεις.. Στην βάση την οποία φτιάχνω, προσπαθώ να επιτύχω τον προκαθορισμό DefautValue τιμης για 13 πεδία τα οποία είναι στην ουσία Unbound.. Με την βοήθεια των μελών του φόρουμ κατάφερα να δίνω τιμές σε αυτά τα πεδία και εφόσον κλείσει η βάση και ξανα ανοίξει και πάλι, να μένουν οι νέες τιμές που έχουν προκαθορισθεί ώς DefaultValue. Σημειώστε ότι στην βάση δεν υπάρχει κάποιος πίνακας και αυτό που προσπαθώ να επιτύχω είναι να καταφέρω να δίνω τιμές σε αυτά τα πεδια ώς DefaultValue έτσι ώστε όταν κλείνει η βάση να μένουν οι τιμές που προκαθόρισα. Το πρόβλημα - σπαζοκεφαλιά είναι ότι: Ενώ κατά την διαδικασία προκαθορισμου των τιμων για αυτά τα πεδία όλα δουλεύουν θαυμάσια, εντούτις εφόσον κλείσει η βάση και κάνωντας Compact & Repair εφόσον το έχω προκαθορίσει να γίνεται με το κλείσιμο της βάσης, όταν ανοιξω ξανά την βάση μου ΤΙΠΟΤΑ δεν δουλεύει..!! Δηλαδή δεν δουλεύει η διαδικασία προκαθορισμού τιμών για τα πιο πάνω πεδία.. Στην προσπάθεια μου να επιλύσω το θέμα έχω προσπαθησει άπειρες λύσεις αλλά μάταια. Σημειωστε πως έχω δικιμάσει να ανοιξω μια νεα βάση και να κάνω εισαγωγή όλα τα αντικείμενα απο την παλιά, αλλά δυστυχώς το πρόβλημα εξακολουθεί.. Παραθέτω ένα κομμάτι της πραγματικής βάσης έτσι ώστε να μπορέσετε να καταλάβετε τι έχω κάνει και εν τέλη εάν μπορεί κάποιος να βοηθήσει με τις δικές του γνώσεις και εμπειρίες.. Θα εκτιμήσω κάθε βοήθεια - εισήγηση.. Φιλικά |
| Η ώρα είναι 18:32. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.