27-07-12, 11:54
|
| Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού 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 Ανάπτυξη επαγγελματικών εφαρμογών |