Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Αντικατάσταση αριθμού σε πλαίσιο κειμένου

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 12-11-16, 08:42
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Αλέξανδρε, η συνάρτηση Replace3Blanks ψάχνει 3 συνεχόμενα διαστήματα στα οποία να προηγείται και να έπεται οποιοσδήποτε (α, 1,@,!,%,:, κλπ) άλλος χαρακτήρας και ακολούθως αλλάζει το μεσαίο διάστημα σε «-».

Όπως είναι ταυτίζεται με την Replace(s, " ", " - ").

Θα μπορούσε συνεπώς να μη χρησιμοποιηθεί και στη ρουτίνα ReplaceFirstEndChar να θέσουμε:

Κώδικας:
Me.TextBox2 = Replace(Trim(s), "   ", " - ")
Έγραψα τη συνάρτηση Replace3Blanks, επειδή μπορεί να προσαρμοστεί και να αποκλείει τις αντικαταστάσεις σε κάποιες περιπτώσεις, που ο χαρακτήρας που προηγείται ή έπεται είναι κάποιος συγκεκριμένος (πχ ένας από τους «~!@#$%^&*;:<>,»).

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

ΥΓ. Οι Regular Expressions είναι καταπληκτικές στην επικύρωση δεδομένων καθώς και στην εύρεση και την αντικατάσταση μοτίβων.
Απάντηση με παράθεση
  #12  
Παλιά 12-11-16, 12:17
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Γιώργο καλημέρα,
δοκίμασα και τις 2 περιπτώσεις είναι εντυπωσιακό. Χθές το βράδυ κοίταξα λίγο και για τις Regular Expressions να δώ πως είναι ο κώδικας , διαφορετική μορφή.
Εντόπισα και ένα λάθος ακόμη
Ο Κώδικας στο module αυτό εμφανιζει τους αριθμούς
ΠΧ 1234 4567 με μορφή #1234 #4567 προσθέτει αριθμοδείκτη
Πως μπορώ να ενσωματώσω κώδικα πανω σε αυτό το module γιατί αντιμετωπίζω πρόβλημα μόνο στη περίπτωση που είναι δεκαδικό ΠΧ 12,256 μου εμφανίζει #12,#256
Ενώ εγώ θέλω όταν υπάρχει ο χαρακτήρας κόμμα (,) ανάμεσα σε αριθμό να φαίνεται σαν ένας αριθμός ΠΧ #12,256 διότι το εκλαμβάνει σαν δεύτερο αριθμό.
Να του πούμε όταν υπάρχει ο χαρακτήρα (,)κόμμα πρίν και μετα από δύο αριθμούς χωρίς κενό να μην προσθέτει αριθμοδείκτη μετα το κόμμα(,) ΠΧ #12,256 ΚΑΙ ΟΧΙ #12,#256 ανυπήρχε ένα κενο μετα το κόμμα(,) θα ήταν της μορφής #12, #256
ΑΠΟΣΠΑΣΜΑ ΤΗΣ FUNCTION TOY MODULE
Κώδικας:
Case Else
                If IsNumeric(CURRENT_CHAR) = True Then  'EINAI ARITMOS
                    '              If i > 1 Then

                    Dim j As Long
                    Dim my_char As String
                    Dim my_temp_number As String

                    my_temp_number = ""

Dim my_num1 As Variant, my_num1_trans As Variant

my_num1 = "1234567890"
my_num1_trans = "abcdefghij"

                    For j = i To lngLen
                        my_char = Right(Left(strChars, j), 1)
                        If IsNumeric(my_char) = True Then  'EINAI ARITMOS
                         If my_char = "0" Then
                            my_temp_number = my_temp_number & Right$(my_num1_trans, 1)
                         Else
                            my_temp_number = my_temp_number & Right$(Left$(my_num1_trans, CInt(my_char)), 1)
                         End If
                         
                        Else    'telos oi aritmoi
                            Exit For
                        End If
                    Next j

                    strTemp = strTemp & "#" & my_temp_number
                    i = j

                    If i < lngLen Then GoTo next_char Else GoTo final1
                    'End If
                Else
End If
        End Select
    Next


final1:
    Transliterate1 = strTemp
End Function
Απάντηση με παράθεση
  #13  
Παλιά 12-11-16, 15:12
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Αλέξανδρε, αν αλλάξεις την προτελευταία γραμμή κώδικα σε:

Transliterate1 = replace(strTemp,",#",","), μάλλον θα λυθεί το πρόβλημα.
Απάντηση με παράθεση
  #14  
Παλιά 12-11-16, 16:14
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Καλησπέρα Γιώργο ,
τι να πω ρε φίλε μαγικά τα κάνεις δουλεύει τέλεια.Να σε ρωτήσω και κάτι άλλο μου βγάζει όταν αλλάζω γραμμή ότι δεν αναγνωρίζει τους χαρακτήρες (Chr13) kai Chr10).Τί είναι αυτό και πως το προσπερνάω.
του έχω βάλει μια΄γραμμή κώδικα για να μου δείχνει τι δεν μεταγλωττίζει
''Εδώ ελέγχει το σύστημα ότι βρήκε χαρακτήρα που δεν υπάρχει

MsgBox "Χαρακτηρας που δεν υπάρχει const [" & ChrW(intChar) & "] intchar=" & intChar


Επίσης αντιμετωπίζω ένα σοβαρό θέμα με τα εισαγωγικά είναι το(«)Chr8 και το (»)Chr0
με αντιγραφή επικόλληση γίνεται , όταν όμως πάω να γράψω τότε βγάζει (") τι χαρακτήρας είνα αυτός το 34;και είναι το ίδιο μπρός πίσω από τη πρόταση.Υπάρχει δυνατότητα με συνδυασμό να πληκτρολογήσω στο πλαίσιο κειμένου και να βγάζει τα κανονικά;[IMG]https://drive.google.com/file/d/0ByrxtVjC98IcdGx6cVNYRmNBSDA/view?usp=sharing
Συνημμένα Αρχεία
Τύπος Αρχείου: zip εισαγωγικα.zip (180,2 KB, 7 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη alex : 12-11-16 στις 16:25.
Απάντηση με παράθεση
  #15  
Παλιά 12-11-16, 17:33
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

1) Όταν αλλάζει γραμμή, στο τέλος της, προστίθενται οι χαρακτήρες Chr(13) και Chr(10).

Στη VBA για το συνδυασμό αυτών των χαρακτήρων χρησιμοποιούνται οι σταθερές vbCRLF ή vbNewLine.

Αν σε ένα MsgBox βάλουμε το κείμενο "Θα διαγραφούν εγγραφές" & vbCRLF & "Θα συνεχίσεις;", θα εμφανίζεται σε 2 γραμμές.

2) Ο κωδικός για τα εισαγωγικά « είναι 0171 και για τα » 0187.

Στον κώδικα τα παίρνουμε με τις συναρτήσεις Chrw(0171) και Chrw(0187).

Με πατημένο το Alt πληκτρολογώντας τον κωδικό στην αριθμοπινακίδα μπορούμε να τα πάρουμε και σε πλαίσιο κειμένου.

3) Η συνάρτηση Chr(34) μας δίνει τα διπλά κοινά εισαγωγικά.

Δεν έχω ασχοληθεί ιδιαίτερα με θέμα γι' αυτό και δε μπορώ να βοηθήσω περισσότερο.
Απάντηση με παράθεση
  #16  
Παλιά 12-11-16, 18:02
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Γιώργο σε ευχαριστώ πολύ για όλα και όλες τις πληροφορίες.
Το πάντρεμα και ο συνδυασμός μεταξύ του κώδικα του Braille και του κώδικα της VBA είναι πολύ δύσκολο πράγμα παιδεύομαι 3 χρόνια τώρα. Προυποθέτει πολύ καλή γνώση και των δύο αντικειμένων σε συνδυασμό δύο γραμματοσειρών που πολύ πιθανόν να υπάρχουν και λάθη στις γραμματοσειρές ή να μην ταιριάζουν.Τότε πάμε στο τελικό για αντικατάσταση αν και πολλές φορές από τις πολλές διορθώσεις ο κώδικας τα φτύνει και δε χωράει άλλες επεμβάσεις.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Αποτέλεσμα ερωτήματος σε πλαίσιο κειμένου ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 2 07-03-15 22:02
[ Φόρμες ] Σύνθετο πλαίσιο κειμένου asterix Access - Ερωτήσεις / Απαντήσεις 5 26-09-14 19:17
[ Φόρμες ] Εικόνα συνδεδεμένη με πλαίσιο κειμένου Λάμπρος Τ Access - Ερωτήσεις / Απαντήσεις 2 20-06-14 21:08
[Γενικά] Πλαίσιο κειμένου Activex gfevran Excel - Ερωτήσεις / Απαντήσεις 2 20-01-14 10:46
[ Φόρμες ] Ενημέρωση πλαίσιο κειμένου ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 5 20-06-11 20:27


Η ώρα είναι 18:29.