Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Αλλαγή DefaultValue (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4003-allagi-defaultvalue.html)

γιώργοςΚ 10-01-16 15:42

Αλλαγή DefaultValue
 
Φίλοι μου γειά σας και πάλι,

Προσπαθώ να βρώ κάποιο τρόπο για να μπορώ μέσω κάποιας φόρμας και ενός Unbound να αλλάζω το DefaultValue σε ένα δεύτερο Unbound object.
Δηλαδή:
Σε μια φόρμα υπάρχουν δύο πεδία (το Field1 & Field2) τα οποία όπως είπα δεν προέρχονται απο κάποιο πίνακα, είναι δηλαδή unbound.

θέλω εφόσον καταχωρήσω οποιαδήποτε τιμή στο πεδίο Field1 να αλλάζει το DefaultValue στο πεδίο Filed2. Αν και έχω βρεί τρόπο να το κάνω αυτό μέ μια απλά γραμμή του πάρα κάτω κώδικα στο After Update του πρώτου πεδίου (Me.Field2.DefaultValue = 2 πχ) εντούτις εφόσον κλείσει η φόρμα και ξανα ανοίξει δεν μένει η τιμή που προκαθόρισα.

Τα φώτα σας και όποια ιδέα για βοήθεια ευπρόσδεκτη.

nasos23 10-01-16 20:11

Καλησπέρα σε όλους
Γιώργο αν κατάλαβα καλά
Κώδικας:

Private Sub field1_AfterUpdate()
If (Me.field1) <> "" Then
 Me.field2 = Me.field1
 
 Else
  Me.field2.DefaultValue = 2
  DoCmd.Save
  End If
End Sub

Private Sub Form_Current()
  If (Me.field1) <> "" Then
  Me.field2 = Me.field1
 
    Else
  Me.field2.DefaultValue = 2
  End If
  End Sub


γιώργοςΚ 10-01-16 20:56

1 Συνημμένο(α)
Καλησπέρα Νάσο και ευχαριστώ για την πρόθεση να βοηθήσεις,

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

Ενημερωτικά Νάσο δεν δούλεψε η λύση που προτείνεις εφόσον:

1. Αφενώς μέν ενημερώνεται το δεύτερο πεδίο με την τιμη του πρώτου
2. Αφετέρου δε, εφόσον κλείσεις την φόρμα και την ανοίξεις και πάλι στο δεύτερο πεδίο δεν αποθηκεύεται το DefaultValue που δώσαμε πρίν απο το πρώτο πεδίο..

Ελπίζω να βρεθεί κάποια λύση...

Σε κάθε περίπτωση ευχαριστώ και πάλι

dimmag 07-02-16 07:24

Καλημέρα σε όλους

αφού η τιμή 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

Ελπίζω να βοήθησα

Φιλικά, Δημήτρης

γιώργοςΚ 08-02-16 11:15

Δημήτρη καλημέρα και σε ευχαριστώ πολύ για το ενδιαφέρον φίλε μου,

Η λύση που προτείνεις είναι γνωστή σε εμένα, το πρόβλημα όμως ειναι ότι ΔΕΝ θελω να υπάρχει πίνακας στον οποίο να αποθηκεύονται οι τιμές..! Εδώ είναι το θέμα..!

Με την χρήση πίνακα υπάρχουν δεκάδες λύσεις, αν θέλεις διάβασε ξανά την πρώτη αναρτηση μου για να καταλάβεις τι ακριβώς χρειάζομαι.

Σε κάθε περίπτωση σε ευχαριστώ πάντως

dimmag 09-02-16 21:25

1 Συνημμένο(α)
Καλησπέρα σε όλους.
Γιώργο αν κατάλαβα καλά θέλεις το field2 να έχει την τελευταία τιμή του field1 όταν ανοίξει η φόρμα χωρίς πίνακα. Μια λύση είναι με χρήση Public Const και αλλαγή της τιμής της με κώδικα όταν ενημερώνετε το field1

Δες το συνημμένο.

Ελπίζω να βοήθησα

Φιλικά, Δημήτρης

γιώργοςΚ 10-02-16 13:26

Δημήτρη σε ευχαριστώ πολύ

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

Νάσαι καλά.

γιώργοςΚ 11-02-16 20:13

Καλησπέρα Δημήτρη και σε όλους τους φίλους του φόρουμ,

Δημήτρη η λύση που προτείνεις δουλεύει μια χαρά μόνο που υπάρχει ένα μικρό αλλά σημαντικό πρόβλημα, για να πάρει την νέα τιμή το πεδίο σαν DefaultValue πρέπει να κλείσω την φόρμα και να την ξανα ανοίξω και πάλι..

Μπορεί να γίνει κάτι έτσι ώστε να αποφύγω το κλείσιμο της φόρμας?

Επίσης, ένα άλλο σημαντικό που θα εκτιμούσα εαν μπορούσε κάποιος να βοηθήσει είναι το γεγονός ότι αυτή η διαδικασία (DefaultValue) πρέπει να γίνεται σε περίπου 10 πεδία...άρα σε αυτή την περίπτωση απλά κάνω αντιγραφη των modules με διφορετική ονομασία για κάθε πεδίο ξεχωριστά ή υπάρχει κάποιος άλλος τρόπος??

Ευχαριστώ

dimmag 12-02-16 22:10

1 Συνημμένο(α)
Καλησπέρα
Καταρχήν η ιδιότητα DefaultValue ενεργοποιείται μόνο για νέα δεδομένα.
Για μια λύση δες συνημμένο.
Φιλικά, Δημήτρης

γιώργοςΚ 13-02-16 07:52

1 Συνημμένο(α)
Καλημέρα φίλε Δημήτρη και σε ευχαριστώ και πάλι για το ενδιαφέρον να βοηθήσεις,

Η δεύτερη βάση Δημητρη δεν κατάλαβα πως δουλεύει..(?) Αν θές μου λές λίγο το σκεπτικό?

Όπως και να έχουν τα πράγματα, δεν είναι αυτό που εννοούσα όταν είπα ότι θέλω αυτη η διαδικασία να επαναλαμβάνεται σε πολλά πεδία... Αναρτώ ένα παράδειγμα που ετοίμασα έτσι ώστε να γίνω πιο κατανοητός και θα εκτιμούσα εάν είχα ακόμη λίγη βοήθεια..

Σε ευχαριστώ


Η ώρα είναι 09:56.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2