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

Καλησπέρα!

Θα πρότεινα μια διαφορετική προσέγγιση.

Στο πεδίο της φόρμας [ID] έχουμε:
  • Μάσκα εισαγωγής = 9,99,99,999999;;
  • Κανόνας επικύρωσης = Is Null Or Len([ID])=5
  • Κείμενο επικύρωσης = Ότι χρειάζεται για να ενημερωθεί κατάλληλα ο χρήστης

Στο συμβάν "Με την αλλαγή" του πεδίου [ID] χρησιμοποιείται ο παρακάτω κώδικας:

Κώδικας:
Private Sub ID_Change()
    Dim strText As String, i As Long
    strText = Replace(Replace(Me.ID.Text, "_", ""), ".", "")
    If Len(strText) = 5 Then
        i = DCount("[ID]", "tbl_TEST", "left([ID],5)='" & strText & "'")
        If i Then
            Me.ID = strText & Format(i + 1, "000000")
        Else
            Me.ID = strText & "000001"
        End If
    End If
End Sub
Edit:

Πιο απλοποιημένα και μετά από συζήτηση με τον Γιώργο (kapetang):
Κώδικας:
Private Sub ID_Change()
    Dim i As Long
    strText = Replace(Replace(Me.ID.Text, "_", ""), ".", "")
    If Len(strText) = 5 Then
    i = Nz(DMax("Right([ID],5)", "tbl_TEST", "left([ID],5)='" & strText & "'"))
            Me.ID = strText & Format(i + 1, "000000")
    End If
End Sub

Φιλικά

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

Τελευταία επεξεργασία από το χρήστη Tasos : 28-09-12 στις 08:47.
Απάντηση με παράθεση