Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Εισαγωγή μόνο αριθμών σε πεδίο (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/952-eisagogi-mono-arithmon-se-pedio.html)

Meteora 31-01-11 17:23

Εισαγωγή μόνο αριθμών σε πεδίο
 
Καλησπέρα...
Στό πεδίο [mk] φόρμας πρέπει να εισάγονται μόνο αριθμοί. Έφτιαξα μια ρουτίνα η οποία στον υπολογιστή μου δουλεύει (Εκμετάλευση του συμβάντος 'Με το πάτημα του πλήκτρου').
Θάχει μήπως πρόβλημα να δουλέψει σε οποιοδήποτε υπολογιστή, εδώ στην Ελλάδα μας;
Κώδικας:


Private Sub mk_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 48 To 57, 8
    Case Else
        MsgBox "Μόνο Αριθμοί !", vbCritical, "Έλεγχος"
        KeyAscii = 0
    End Select
End Sub

Η μάσκα εισαγωγής 9999 κοκ δεν με αρέσει με εκείνες τις υπογραμμίσεις της...

Η λύση του θέματος είναι σημαντική για μένα...

Με εκτίμηση

Νίκος Δ.

kapetang 05-02-11 15:43

Καλημέρα στην παρέα

Φίλε Νίκο, για το θέμα που έθεσες, έχω την ακόλουθη άποψη:
1). Αν το πεδίο είναι δεσμευμένο πιστεύω ότι είναι καλύτερα ο περιορισμός (αριθμός, ακέραιος, στο διάστημα, κλπ) να μπει στη σχεδίαση του πίνακα. Έτσι ο περιορισμός θα κληροδοτείται στο πεδίο σε οποιαδήποτε φόρμα κι’ αν βρίσκεται αυτό.
2). Αν το πεδίο είναι αδέσμευτο μπορούμε:
  • Να θέσουμε την ιδιότητα «μορφή» στην αριθμητική μορφή που θέλουμε και στη καρτέλα δεδομένα να ορίσουμε και κανόνα επικύρωσης (πχ >1 and <1000). Στην περίπτωση αυτή, όπως και στην προηγούμενη, ο έλεγχος γίνεται κατά την αποθήκευση των δεδομένων του πεδίου (με το χάσιμο της εστίασης).
  • Να εφαρμοστεί η λύση που προτείνεις. Η λύση, αυτή επειδή αναφέρεται σε κωδικούς χαρακτήρων μικρότερους του 127, πιστεύω ότι θα λειτουργεί σωστά, ανεξάρτητα από τις τοπικές ρυθμίσεις. Αν το πεδίο θα παίρνει τιμές δεκαδικές και αρνητικές θα πρέπει να μη μηδενίζονται και οι κωδικοί 44 (,), 45 (-) και 46 (.).Επίσης καλό είναι να επιτρέπεται και η κίνηση με τα βέλη κωδικοί vbKeyLeft (37) και vbKeyRight (39).
Γιώργος

Meteora 05-02-11 17:43

Καλησπέρα Γιώργο...
Το πεδίο είναι αλφαριθμητικό διότι πρέπει να δέχεται το ΑΦΜ. Ξέρεις οτι μερικά ΑΦΜ ξεκινούν από μηδέν (0)... Μια αναζήτηση που έκανα στο διαδίκτυο μέ τον πληροφορικό του Σχολείου μου, είδα ότι τους KeyAscii των ψηφίων του δεκαδικού συστήματος, καλά τους καθόρισα. Βρήκα επίσης τους Tab, Backspace και Del. (Τα βέλη ΔΕΝ τα σκέφτηκα !)

Εκεί -στην σχεδίαση του πίνακα- το μόνο που μπορώ να κάνω, είναι να βάλω μάσκα, αλλά δεν μπορώ εκείνες τις υπογραμμίσεις που εμφανίζονται, όταν ο κέρσορας βρίσκεται μέσα στο πεδίο - στη φόρμα. Μπορώ να κάνω κάτι άλλο σε επίπεδο πίνακα ;

Γιώργο μου σε ευχαριστώ.

Φιλικά
Νίκος Δ.

kapetang 05-02-11 18:41

Νίκο, Καλησπέρα

Νομίζω ότι το πρόβλημα μπορεί να λυθεί ως εξής:
1) Στη σχεδίαση του πίνακα το πεδίο [AFM] ορίζεται κείμενο μήκους 9 χαρακτήρων. Αν δεν κάνω λάθος όλα τα ΑΦΜ έχουν 9 χαρακτήρες.
2). Στον κανόνα επικύρωσης θέτουμε: IsNumeric([AFM])=True.
3) Στο κείμενο επικύρωσης μπορεί να γράψουμε : «Μόνο ψηφία γίνονται δεκτά»

Φιλικά/Γιώργος

Meteora 05-02-11 19:28

Γιώργο μου,
Θα το δοκιμάσω. Το μήνυμα με ενδιαφέρει, διότι πρέπει να δίνει την αίσθηση στον χρήστη-όταν το μήνυμα εμφανιστεί - οτι ο σχεδιαστής "είναι εκεί".
Σε ευχαριστώ...

Καλό σου βράδυ φίλε μου.

Νίκος Δ.

Tasos 05-02-11 21:07

Καλησπέρα σε όλους!
Η χρήση κανόνα επικύρωσης του πεδίου νομίζω ότι είναι μια καλή λύση αφού πρέπει να εμφανιστεί μήνυμα λάθους.
Ίσως θα έπρεπε να επιτρέπει στο χρήστη να αφήσει το πεδίο κενό.
Σ αυτή την περίπτωση τροποποιούμε το κριτήριο έτσι: Is Null Or IsNumeric([AFM])

Τώρα αν χρειαστεί να πάμε ένα βήμα παραπέρα δηλ. να ελέγχουμε αν το Α.Φ.Μ. είναι έγκυρο,
το συνημμένο στο μήνυμα αυτό έχει κάτι να μας δείξει: http://www.ms-office.gr/forum/access....html#post1489
και νομίζω ότι είναι πρωτοποριακό αφού κάνει τη δουλειά του χωρίς τη βοήθεια της VBA.

Φιλικά

Τάσος

Meteora 06-02-11 08:58

Καλημέρα μας...
"Εμπλεξα" μαζί σας και και πρέπει να πάρω αποφάσεις για ριζική αλλαγή διαχείρισης στο πεδίο [AFM].

Γιώργο, Τάσο, έχετε την αγάπη μου...

Νίκος Δ.


Η ώρα είναι 08:54.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2