Καλημέρα
Στον αρχικό κώδικα του Γιώργου:
Όσες δοκιμές κι αν έκανα, με ημερομηνίες πριν το 1950, δεν υπάρχει σφάλμα.
Πάντα αποδίδει
σωστά* την ηλικία.
Ο έλεγχος του Len σωστά προστέθηκε από τον Χρήστο, αν και η εφαρμογή
θα μπορούσε να δουλέψει και με τα έξι πρώτα ψηφία
μιας και σκοπός είναι ο υπολογισμός ηλικίας...
Τώρα
Το σωστά το έχω με αστερίσκο, διότι αν έχουμε παράδειγμα 100180...αποδίδει 38
Δεν ξέρω αν αυτό είναι επιθυμητό, ή αν πρέπει να αποδίδει 39.
Ανάλογα τι θέλετε ή τι θεωρείτε σωστό, μπορείτε να βάλετε στον υπολογισμό:
Κώδικας:
Label.Caption=(...) +1
ή και
Κώδικας:
Label3.Caption = Year(Date) - Year(TextBox2.Value)
Στο Click του «Καθαρισμός» και οι δύο κώδικες, αφήνουν το TextBox2 «Γεμάτο»
ενώ θα πρέπει να «Καθαρίσει»
Η εγκυρότητα του ΑΜΚΑ, είναι μια περίπτωση που πρέπει να ελεγχθεί
αν αυτό χρειάζεται τελικά,
αλλά αυτό είναι άλλο και μεγάλο κεφάλαιο...
Το κουμπί «Κλείσιμο», είναι
άστοχο ως προς την ονομασία και μπερδεύει τον χρήστη.
Θα μπορούσε να έχει πιο
σωστά ,ένα κώδικα πίσω του, που κλείνει απλά την φόρμα:
και να υπάρχει άλλο κουμπί με: «Έξοδος Από Την Εφαρμογή»
για πλήρη έξοδο...
Μπορούμε ακόμα να εξαφανίσουμε το κουμπί
Χ της φόρμας...
Όμως
Αυτό που υπάρχει πίσω από το υπάρχον κουμπί:
Κώδικας:
Private Sub cmdClose_Click()
ThisWorkbook.Close SaveChanges:=True
Application.Quit
End Sub
ίσως κάποιες φορές (όχι πάντα, αλλά υπάρχει)
δημιουργήσει πρόβλημα, κλείνοντας και άλλα ανοιχτά βιβλία
με αποτέλεσμα, να χάσουμε δεδομένα...
Καλύτερα να βάλετε:
Κώδικας:
Private Sub cmdClose_Click()
Dim i As Integer
i = Workbooks.Count
If i > 1 Then
ThisWorkbook.Close SaveChanges:=True
Else
ThisWorkbook.Close SaveChanges:=True
Application.Quit
End If
End Sub