Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Πρόβλημα με datepicker (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1678-problima-me-datepicker.html)

sakis297 24-02-12 19:13

Πρόβλημα με datepicker
 
Γεια σας παιδιά!!!
Σε μία φόρμα έχω τα πεδία date και day. Στο afterupdate του πεδίου date έχω προσθέσει κώδικα, ώστε στο day να εμφανίζεται το όνομα της ημέρας. Δηλαδή αν στο date πληκτρολογήσω 24/02/2012, στο day εμφανίζεται αυτόματα η λέξη ¨Παρασκευή".
Ο φίλος Τάσος μας βοήθησε, ώστε να μπορούμε να εισάγουμε ημερομηνίες κάνοντας κλικ σε ένα βοηθητικό ημερολόγιο εδώ http://www.ms-office.gr/forum/access...-se-forma.html
Το πρόβλημα είναι ότι, αν συμπληρώσω το date με το βοηθητικό ημερολόγιο, τότε ο κώδικας στο afterupdate του πεδίου δε λειτουργεί.
Τη λύση τη βρήκα βάζοντας τον κώδικα στο onclick του day.
Θα ήθελα λοιπόν, αν μπορεί κάποιος να μου εξηγήσει γιατί συμβαίνει αυτό κι αν υπάρχει καλύτερη λύση από αυτήν που βρήκα εγώ. Δε μου αρέσει που ο χρήστης θα πρέπει να κάνει κλικ στο πεδίο day για να συμπληρωθεί η ημέρα.

Tasos 24-02-12 20:49

Καλησπέρα Σάκη!

Σου συνιστώ να μη χρησιμοποιείς ονόματα σε μια βάση που είναι δεσμευμένα από την Access, τη VBA ή την SQL όπως Date, day κλπ.
Δες τη λίστα στο μήνυμα αυτό: http://www.ms-office.gr/forum/access...in-access.html


Το συμβάν AfterUpdate αλλά και πολλά άλλα εκτελούνται μόνο όταν προκληθούν από το χρήστη.

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

Έστω λοιπόν ότι το πεδίο που θα παίρνει την τιμή πχ. "Τρίτη" έχει το όνομα "txtDay"

θα μπορούσες στο πεδίο αυτό να χρησιμοποιήσεις τον τύπο: =Format([HM];"dddd")

Αν τώρα πρέπει να αποθηκεύεις την τιμή αυτή τότε:

Στον κώδικα της φόρμας του ημερολογίου ("frmCalendar") άλλαξε την εντολή cmdOK_Click() με την παρακάτω:

Κώδικας:

Private Sub cmdOK_Click()
    On Error Resume Next
    Set TheForm = Sender.Parent
    If Sender = Me.txtDate Then
        Sender = Me.txtDate - Weekday(Me.txtDate, vbMonday) + 1
        closeForm
        Exit Sub
    End If
    Sender = Me.txtDate
    TheForm.dtDay = Format(Me.txtDate, "dddd")
    Sender.SetFocus
    Sender.SelStart = 0
    Sender.SelLength = 0
    closeForm
End Sub

Καλή συνέχεια!

Τάσος

sakis297 24-02-12 21:19

Τάσο σ' ευχαριστώ για άλλη μια φορά!!!
Να είσαι καλά!!!


Η ώρα είναι 18:25.

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


Search Engine Optimization by vBSEO 3.3.2