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/546-afairesi-teleytaioy-xaraktira.html)

stavros2244 03-05-10 20:28

Δεν ξέρω γιατί αλλά δεν δουλεύει. Μήπως πρέπει να συμπεριλάβω κάποια συνάρτηση?Η να ενεργοποιήσω κάτι?

Ευχαριστώ.

Tasos 04-05-10 08:52

1 Συνημμένο(α)
Καλημέρα Σταύρο!

Δεν ξέρω τι κάνεις γιατί δε βλέπω τη βάση σου.

Δες αν θέλεις ένα παράδειγμα στο συνημμένο παρακάτω.

Παράλληλα, αν έχεις χρόνο μελέτησε το συνημμένο: http://www.ms-office.gr/forum/access....html#post2608

Φιλικά

Τάσος

stavros2244 04-05-10 10:47

Μάλλον κατάλαβα τι φταίει. Η φόρμα μου είναι συνεχής. Το δοκίμασα με κανονικό text box και δουλεύει μια χαρά.

Με συνεχή φόρμα όμως δεν δουλεύει γιατί τραβάει τα ονόματα από έναν πίνακα. Μήπως θα μπορούσε να γίνει κάτι για να φεύγει για παράδειγμα ο τελευταίος χαρακτήρας από τον πίνακα κατευθείαν?

Tasos 04-05-10 11:11

Σταύρο, η φόρμα του παραδείγματος μου είναι συνεχής και το πεδίο txt1 είναι συνδεδεμένο με το αντίστοιχο πεδίο στον πίνακα οπότε:

Ότι συμβαίνει στο πεδίο της φόρμας, συμβαίνει και στο πεδίο του πίνακα.

Αν έχεις χρησιμοποιήσει το συμβάν Current(), δεν θα λειτουργήσει αφού η εγγραφή προς διόρθωση έχει ήδη προσπεραστεί.

Φιλικά

Τάσος

stavros2244 05-05-10 10:42

ΟΚ! Βρήκα τι έφταιγε..Δούλευε αλλά μόνο για τον πεζό χαρακτήρα
Ο δεκαδικός του Σ είναι το 931 ενώ του ς είναι το 962 που είναι και στο sample code.
Τώρα δουλεύει μια χαρά!

Ευχαριστώ πολύ για την βοήθεια

stavros2244 10-05-10 10:59

Έχω μία τελευταία ερώτηση..
Η φόρμα μου είναι συνεχής και διαβάζει τα ονόματα από έναν πίνακα με την φόρτωση αυτής. Πώς μπορώ με την φόρτωση να περνάει όλες τις εγγραφές της συνεχούς φόρμας και να αφαιρεί τον χαρακτήρα? Το afterupdate δεν λειτουργεί αλλά το onClick λειτουργεί. Που θα μπορούσα να βάλω το
Dim txt$
If Len(Nz(Me.Lastname, vbNullString)) Then
txt = Me.Lastname
If AscW(Right$(txt, 1)) = 931 Then Me.Lastname = Left$(txt, Len(txt) - 1)
End If

ώστε να λειτουργεί σε όλες τις εγγραφές της συνεχούς φόρμας χωρίς να κλικάρω σε κάθε πεδίο της εγγραφής για να αφαιρεθεί ο χαρακτήρας?

Ευχαριστώ

Tasos 10-05-10 13:50

Καλησπέρα!
Σταύρο, εξηγησε μου, είναι συνδεμένα τα πεδία σου με πεδία του πίνακα;

Τάσος

stavros2244 10-05-10 14:38

Το πεδίο Lastname της συνεχούς φόρμας είναι ουσιαστικά το πεδίο ενός πίνακα tblEmpl έτσι ώστε η συνεχής φόρμα εμφανίζει όλες τις καταχωρήσεις του πίνακα (μόνο το πεδίο Επώνυμο)

Tasos 10-05-10 16:31

Καλησπέρα!
Με την παρακάτω συνάρτηση μπορείς να αφαιρέσεις τα τελικά Σίγμα από το πεδίο
"Lastname" του πίνακα "tblEmpl":

Κώδικας:

Function RemoveAscW_962()
    Dim strSQL$
    strSQL = "Update [tblEmpl]  SET [Lastname ] = IIf(AscW(Right$([Lastname ], 1)) = 962," & _
            "Left$([Lastname ], Len([Lastname ]) - 1),[Lastname ])  WHERE [Lastname ] <> Null"
    CurrentDb.Execute strSQL
End Function

Μάλλον θα τη χρειαστείς για μία και μοναδική φορά.
Τα υπόλοιπα που ήδη έχεις δημιουργήσει, άφησε τα ως έχουν.

Φιλικά

Τάσος

stavros2244 12-05-10 10:32

Ευχαριστώ πολύ!Έβαλα την συνάρτηση στο onLoad της φόρμας μου και δουλεύει μια χαρά!

Ευχαριστώ πολύ!


Η ώρα είναι 20:21.

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


Search Engine Optimization by vBSEO 3.3.2