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

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

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

 

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

Καλημέρα σε όλους μια μικρή ερωτησούλα αν ξέρετε.

Υπαρχει καμιά μάσκα εισόδου για ημερομηνία έτσι ώστε όταν ο χρήστης πχ. θέλει να εισάγει την 6/7/2012 και πληκτρολογεί '6' και μετά '/' να του αλλάζει κατά την πληκτρολόγηση τη μορφή της ημέρας σε "06/"

Με την προκαθορισμένη μάσκα σύντομης ημερομηνίας το αποτέλεσμα στην οθόνη είναι

"6_/7_/2012"

Μήπως πρέπει να υλοποιούμε το Change event ?

Γιάννης
Απάντηση με παράθεση
  #2  
Παλιά 26-07-12, 16:37
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα Γιάννη.

Αντί για μάσκα εισαγωγής για ημερομηνίες πληκτρολόγησε στο πεδίο αυτό: ηη/μμ/αααα (Ιδιότητες >Μορφή >Μορφή).

Τώρα στην πράξη:
  • Αν πληκτρολογήσεις 6,6 θα συμπληρωθεί 06/06/2012
  • Αν πληκτρολογήσεις 6,6,6 θα συμπληρωθεί 06/06/2006

Αναλόγως το πληκτρολόγιο μπορείς αντί για κόμμα να χρησιμοποιήσεις "/" ή "-".

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

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 26-07-12 στις 16:49.
Απάντηση με παράθεση
  #3  
Παλιά 27-07-12, 08:51
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

Ωραία Τάσο ευχαριστώ πολύ! Να σε ρωτήσω και 2 άλλες σχετικές απορίες.
  1. Όταν χρειάζομαι μορφή σύντομης ώρας, υπάρχει δυνατότητα κάποιος όταν θέλει να εισάγει ας πούμε 7:00 να πληκτρολογεί μόνο το 7 και να του συμπληρώνει την ώρα στη σωστή μορφή;
  2. Μπορεί κάποιος να πληκτρολογήσει 730 (χωρίς τελεία ή ":") και να αντικατασταθεί με τη μορφή σύντομης ώρας 07:30;

Ευχαριστώ
Γιάννης
Απάντηση με παράθεση
  #4  
Παλιά 27-07-12, 11:05
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλημέρα Γιάννη.

Εν μέρει μπορεί να επιτευχθεί αυτό.

Υπάρχει όμως πρόβλημα στο λογικό κομμάτι του ζητούμενου.

Δεν μπορεί όμως το πρόγραμμα να γνωρίζει τις προθέσεις του χρήστη όταν εκείνος πληκτρολογήσει πχ. 125.
Το 125 θα μπορούσε να είναι 12:05 ή 01:25.

Αν υποτεθεί ότι συμπληρώνει κανείς μηδενικά (πχ 0125 για 01:25) ώστε κάποιος κώδικας VBA να μπορεί να αποδώσει τη σωστή ώρα, τότε είναι προτιμότερο να χρησιμοποιηθεί η μάσκα εισαγωγής "Σύντομη ώρα".

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 27-07-12, 11:25
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

Ευχαριστώ πολύ Τάσο,

Θα υλοποιήσω κώδικα σε VBA για να "γεμίζω" την ώρα με μηδενικά από δεξιά. Αυτό το παράδειγμα που αναφέρεις είναι σωστό απλά θα ήθελα αν ο χρήστης γράψει 7 και πατήσει tab να το μετατρέψει αυτόματα σε 07:00 που με τη μάσκα δεν γίνεται

Ευχαριστώ πολύ για το χρόνο σου
Γιάννης
Απάντηση με παράθεση
  #6  
Παλιά 27-07-12, 11:54
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Αν το πεδίο περιέχει μέχρι 2 αριθμητικά ψηφία και ο αριθμός που σχηματίζεται είναι μικρότερος το 24
τότε ο παρακάτω κώδικας θα βοηθήσει.
Μπορείς να προσθέσεις στον κώδικα και τις υπόλοιπες περιπτώσεις/συνθήκες (Case) που κρίνεις ότι θα χρειαστούν.

Ο κώδικας προϋποθέτει ένα πεδίο στη φόρμα με το όνομα TimeField και μορφή "Σύντομη ώρα".
Το πεδίο είναι δεσμευμένο με ένα πεδίο πίνακα που έχει τύπο δεδομένων Ημερομηνία/Ώρα.

Κώδικας:
Option Compare Database
Option Explicit
Private Const DataErrNumber = 2113

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Dim CurrentValue As String
    On Error Resume Next
    If Me.ActiveControl.Name = Me.TimeField.Name Then
        If DataErr = DataErrNumber Then
            Response = acDataErrContinue
            CurrentValue = Me.TimeField.Text
            If Not IsNumeric(CurrentValue) Then
                Me.TimeField.Undo
                Exit Sub
            End If
            Me.TimeField.Text = FormatTime(CurrentValue)
            SendKeys "{TAB}"
        End If
    End If
End Sub


Private Function FormatTime(strValue As String) As String
    Select Case Len(strValue)
    Case Is > 0, Is < 3
        If strValue < 24 Then FormatTime = Format(strValue, "00") & ":00"
    Case 3
        'Ο κώδικας σου .......................
    Case 4
        'Ο κώδικας σου .......................
    End Select
End Function
Καλή συνέχεια!

Ο κώδικας μπορεί να απλοποιηθεί αν το πεδίο δεν είναι δεσμευμένο.

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #7  
Παλιά 27-07-12, 12:25
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-06-2012
Μηνύματα: 11
Προεπιλογή

Πολύ καλό! Ευχαριστώ πολύ Τάσο!

Καλή συνέχεια και σε σένα
Γιάννης
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Πίνακες ] Μάσκα εισαγωγής pluss Access - Ερωτήσεις / Απαντήσεις 4 20-01-16 15:48
[VBA] Αποθήκευση με ημερομηνία sotisanis Excel - Ερωτήσεις / Απαντήσεις 7 16-10-13 08:24
[ Φόρμες ] Ημερομηνία σε φόρμα xristos Access - Ερωτήσεις / Απαντήσεις 6 22-04-12 18:56
[Μορφοποίηση] Ημερομηνία και Μορφοποίηση ikaros80 Excel - Ερωτήσεις / Απαντήσεις 2 06-04-11 22:23
[ Συναρτήσεις ] Ημερομηνία Meteora Access - Ερωτήσεις / Απαντήσεις 10 13-11-10 17:00


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