Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Μάσκα εισόδου για ημερομηνία
Καλημέρα σε όλους μια μικρή ερωτησούλα αν ξέρετε. Υπαρχει καμιά μάσκα εισόδου για ημερομηνία έτσι ώστε όταν ο χρήστης πχ. θέλει να εισάγει την 6/7/2012 και πληκτρολογεί '6' και μετά '/' να του αλλάζει κατά την πληκτρολόγηση τη μορφή της ημέρας σε "06/" Με την προκαθορισμένη μάσκα σύντομης ημερομηνίας το αποτέλεσμα στην οθόνη είναι "6_/7_/2012" Μήπως πρέπει να υλοποιούμε το Change event ? Γιάννης |
#2
| ||||
| ||||
Καλησπέρα Γιάννη. Αντί για μάσκα εισαγωγής για ημερομηνίες πληκτρολόγησε στο πεδίο αυτό: ηη/μμ/αααα (Ιδιότητες >Μορφή >Μορφή). Τώρα στην πράξη:
Αναλόγως το πληκτρολόγιο μπορείς αντί για κόμμα να χρησιμοποιήσεις "/" ή "-". Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 26-07-12 στις 16:49. |
#3
| |||
| |||
Ωραία Τάσο ευχαριστώ πολύ! Να σε ρωτήσω και 2 άλλες σχετικές απορίες.
Ευχαριστώ Γιάννης |
#4
| ||||
| ||||
Καλημέρα Γιάννη. Εν μέρει μπορεί να επιτευχθεί αυτό. Υπάρχει όμως πρόβλημα στο λογικό κομμάτι του ζητούμενου. Δεν μπορεί όμως το πρόγραμμα να γνωρίζει τις προθέσεις του χρήστη όταν εκείνος πληκτρολογήσει πχ. 125. Το 125 θα μπορούσε να είναι 12:05 ή 01:25. Αν υποτεθεί ότι συμπληρώνει κανείς μηδενικά (πχ 0125 για 01:25) ώστε κάποιος κώδικας VBA να μπορεί να αποδώσει τη σωστή ώρα, τότε είναι προτιμότερο να χρησιμοποιηθεί η μάσκα εισαγωγής "Σύντομη ώρα". Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#5
| |||
| |||
Ευχαριστώ πολύ Τάσο, Θα υλοποιήσω κώδικα σε VBA για να "γεμίζω" την ώρα με μηδενικά από δεξιά. Αυτό το παράδειγμα που αναφέρεις είναι σωστό απλά θα ήθελα αν ο χρήστης γράψει 7 και πατήσει tab να το μετατρέψει αυτόματα σε 07:00 που με τη μάσκα δεν γίνεται Ευχαριστώ πολύ για το χρόνο σου Γιάννης |
#6
| ||||
| ||||
Αν το πεδίο περιέχει μέχρι 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
| |||
| |||
Πολύ καλό! Ευχαριστώ πολύ Τάσο! Καλή συνέχεια και σε σένα Γιάννης |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | 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.