Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 27-07-12, 11:54
Το avatar του χρήστη Tasos
Tasos Ο χρήστης 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
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση