Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Πίνακες ] Διόρθωση εγγραφών σε συγκεκριμένο πεδίο

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 13-05-12, 19:51
Όνομα: Μαρία
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-04-2011
Μηνύματα: 25
Προεπιλογή Διόρθωση εγγραφών σε συγκεκριμένο πεδίο

Γεια σας,

Θέλω την βοήθειά σας στο εξής:
Έχω μια βάση δεδομένων και στον πίνακα samples1 στο πεδίο Tel υπάρχουν αρκετά λάθη και κάποια από αυτά είναι τα παρακάτω. Θέλω να μάθω πως μπορώ να διορθώσω τα τηλέφωνα που ξεκινούν με λάθος πρόθεμα, για παράδειγμα το λανθασμένο είναι 0695 και θέλω να αντικατασταθεί με 26950. Επίσης, σε πολλά από τα τηλέφωνα δεν αναγράφεται καθόλου το πρόθεμα 26950.

Σας επισυνάπτω το αρχείο. Θέλω το αποτέλεσμα να πλησιάζει όσο το δυνατόν περισσότερο στον πίνακα samples2.

Φιλικά,
Μαρία
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Samples.mdb (364,0 KB, 19 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 13-05-12, 22:14
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα

Δεν έχουν μια ενιαία δομή οι αριθμοί τηλεφώνου που θέλεις να επεξεργαστείς. Αυτό σημαίνει ο κώδικας VBA έχει απαιτήσεις.
Όμως !
Μπορείς να δουλέψεις με την δυνατότητα που δίνει η Access μέσω της διαχείρισης "Εύρεση και αντικατάσταση"

Ζήτησε να γίνει αντικατάσταση του 0695 με το 26950
Ζήτησε να γίνει αντικατάσταση του "-" με το κενό " "
Ζήτησε να γίνει αντικατάσταση του "/" με το κενό " "
Ζήτησε να γίνει αντικατάσταση του "26950 " με το "26950"
Ζήτησε να γίνει αντικατάσταση του "26950" με το "26950 "

Βάλε την φαντασία σου να δουλέψει !

Προσοχή ! ΜΗ ΚΑΝΕΙΣ ΚΑΤΙ ΧΩΡΙΣ ΝΑ ΕΧΕΙΣ ΚΡΑΤΗΣΕΙ ΑΝΤΙΓΡΑΦΟ

Με εκτίμηση
Νίκος Δ.

Υστερολόγιο : Όταν ο αρχικός πίνακας εμφανίσει μια πιο οργανωμένη μορφή, ανέβασε κάποιο δείγμα. Πάντα υπάρχουν ιδέες...
Απάντηση με παράθεση
  #3  
Παλιά 13-05-12, 23:21
Όνομα: Μαρία
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-04-2011
Μηνύματα: 25
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Meteora Εμφάνιση μηνυμάτων
Καλησπέρα

Δεν έχουν μια ενιαία δομή οι αριθμοί τηλεφώνου που θέλεις να επεξεργαστείς. Αυτό σημαίνει ο κώδικας VBA έχει απαιτήσεις.
Όμως !
Μπορείς να δουλέψεις με την δυνατότητα που δίνει η Access μέσω της διαχείρισης "Εύρεση και αντικατάσταση"

Ζήτησε να γίνει αντικατάσταση του 0695 με το 26950
Ζήτησε να γίνει αντικατάσταση του "-" με το κενό " "
Ζήτησε να γίνει αντικατάσταση του "/" με το κενό " "
Ζήτησε να γίνει αντικατάσταση του "26950 " με το "26950"
Ζήτησε να γίνει αντικατάσταση του "26950" με το "26950 "

Βάλε την φαντασία σου να δουλέψει !

Προσοχή ! ΜΗ ΚΑΝΕΙΣ ΚΑΤΙ ΧΩΡΙΣ ΝΑ ΕΧΕΙΣ ΚΡΑΤΗΣΕΙ ΑΝΤΙΓΡΑΦΟ

Με εκτίμηση
Νίκος Δ.

Υστερολόγιο : Όταν ο αρχικός πίνακας εμφανίσει μια πιο οργανωμένη μορφή, ανέβασε κάποιο δείγμα. Πάντα υπάρχουν ιδέες...
Καλησπέρα Νίκο,

Ευχαριστώ για την απάντηση σου.

Αυτό που μου προτίνεις το σκέφτηκα, αλλά είναι πάρα πολλές οι εγγραφές που έχω και στην περίπτωση που δεν έχει καθόλου πρόθεμα πως μπορώ να το προσθέσω; Ή σε άλλη περίπτωση, την παύλα την χρησιμοποιεί όταν έχει δυο τηλέφωνα καταχωρημένα, για να ξεχωρίζει το ένα με το άλλο. Αν πάω να τις αντικαταστήσω όλες μετά θα είναι εύκολο να τα ξεχωρίσω σε tel1, tel2;

Μαρία
Απάντηση με παράθεση
  #4  
Παλιά 14-05-12, 16:07
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα

Δες την μορφή που λαμβάνει ο πίνακας μετά τις πράξεις που σε περιέγραψα. Τώρα με λίγη VBA μπορούμε να προχωρήσουμε.
Παράδειγμα : Αν βρεθεί-στο πεδίο [tel]- μήκος χαρακτήρων 11 τότε μη κάνεις τίποτε. Αν βρεθεί μήκος κοντά στα είκοσι τότε πάρε τα τελευταία 10 ψηφία και ορισέ τα ως αριθμό κινητού και τα έντεκα πρώτα αφησέ τα στο πεδίο που βρίσκονται.
Λείπει -λες- από μερικά τηλέφωνα το "πρόθεμα". Δεν είναι πρόβλημα αυτό !

Ανέβασε καμιά 100 εγγραφές χωρίς τα πεδία [Type] και [address] για να δούμε μήπως εμφανιστούν όμοιες δομές...

...Και μη επαναλαμβάνεις τα γραφόμενά μου στις απαντήσεις σου. Είναι κουραστικό για όσους μας διαβάζουν.

Με εκτίμηση
Νίκος Δ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Samples.zip (13,0 KB, 9 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 14-05-12, 16:58
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Φίλοι μου,
Διαγράψτε τα περιεχόμενα των πεδίων [tel1] και [tel2] και μετά πατήστε το κουμπί στη φόρμα. Δείτε ξανά τον πίνακα !

Με εκτίμηση
Νίκος Δ.


Υστερολόγιο: Νομίζω ότι αρχίζει να μοιάζει με το επιθυμητό της Μαρίας.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Samples.zip (16,0 KB, 11 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 14-05-12, 18:57
Όνομα: Μαρία
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-04-2011
Μηνύματα: 25
Προεπιλογή Αντικατάσταση του κώδικα

Ευχαριστώ για τις απαντήσεις σου.

Έχω αλλάξει την μορφή του πίνακα με την διαδικασία Εύρεση και Αντικατάσταση που μου πρότεινες σε προηγούμενο μήνυμα σου. Έχω καταφέρει το πεδίο tel να είναι το ίδιο, χωρίς παύλες, κενά, / κλπ. Αυτό που απομένει είναι να το διασπάσω.

Χρησιμοποίησα τον κώδικα που μου έστειλες και κρίνω ότι πρέπει να κάνουμε μια αλλαγή στο σημείο του κώδικα που σου αναφέρω παρακάτω. Αντί να βάζει στο πεδίο tel2 τους 10 χαρακτήρες από δεξιά

Κώδικας:
If Len(!tel) > 18 Then !tel2 = Right(!tel, 10)
θα ήθελα να μετράει από αριστερά 12 χαρακτήρες και να μεταφέρει από τον 13ο χαρακτήρα και όσους έχει. Μετά βλέπω πως θα μπει το πρόθεμα στο tel2.

Σου στέλνω ένα αρχείο με περίπου 100 εγγραφές όπως μου ζήτησες.

Μαρία
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Samples.zip (28,6 KB, 18 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 15-05-12, 13:36
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα

Μαρία απενεργοποίησε τις δύο γραμμές κώδικα που ξεκινούν με if ...then ... και στη θέση τους γράψε αυτό :
Κώδικας:
 !tel2 = Mid(!tel, 13, Len(!tel))
Τα ξαναλέμε...

Με εκτίμηση
Νίκος Δ.

ΥΣτερολόγιο : Δεν μπορώ να απαντώ άμεσα λόγω υποχρεώσεων... Θέλω να βοηθηθείς.
Απάντηση με παράθεση
  #8  
Παλιά 15-05-12, 14:56
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα σε όλους!

Είχα ένα αρχείο που με ορισμένες τροποποιήσεις που έγιναν πιστεύω ότι εξυπηρετεί το ζητούμενο.

Η λύση βασίζεται στο ερώτημα QrySamples.

Ένα δεύτερο ερώτημα ( QryMakeNewTable ) φροντίζει να δημιουργήσει έναν νέο πίνακα με τα αποτελέσματα του ερωτήματος QrySamples.

Δεν είναι δυνατόν να υπάρξει λύση που να λειτουργεί 100% αφού δεν υπάρχει κάποια σταθερή δομή στα περιεχόμενα της στήλης των τηλεφώνων.

Δείτε το συνημμένο.

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Samples (2).mdb (296,0 KB, 37 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #9  
Παλιά 15-05-12, 20:03
Όνομα: Μαρία
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-04-2011
Μηνύματα: 25
Προεπιλογή

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

Αυτό που μου πρότεινες δούλεψε μια χαρά. Το μόνο πρόβλημα είναι ότι όταν μεταφέρει τους χαρακτήρες στο tel2 θα ήθελα να διαγράφονται από το tel ( εννοώ αυτούς που μεταφέρει). Δηλαδή, να μην υπάρχουν οι ίδιοι χαρακτήρες και στα δύο πεδία.

Ευχαριστώ,
Μαρία
Απάντηση με παράθεση
  #10  
Παλιά 15-05-12, 21:27
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα
Μαρία,
όταν ολοκληρωθεί η εργασία του 'διαχωρισμού' των τηλεφωνικών αριθμών, δεν έχεις παρά να διαγράψεις τα άχρηστα πεδία από τον πίνακα και να δώσεις σε υπάρχοντα νέα ονόματα!
Αυτή είναι η σκέψη μου.

Με εκτίμηση
Νίκος Δ.

Υστερολόγιο : Τάσο -πίστεψέ με δεν μπορώ να δω,λόγω χρόνου, την ανάρτησή σου. Ξέρεις από...Βέγγο;
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Εστίαση σε συγκεκριμένο πεδίο υποφόρμας dimitrisp Access - Ερωτήσεις / Απαντήσεις 10 25-06-15 13:24
Ψάξιμο σε συγκεκριμένο πεδίο και εγραφή (vba) γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 19-09-14 16:39
Πεδίο αρίθμησης εγγραφών σε ερώτημα ggreg75 Access - Ερωτήσεις / Απαντήσεις 3 26-03-13 12:17
Εύρεση τυχαίων αριθμών από συγκεκριμένο πεδίο dimogerontas Access - Ερωτήσεις / Απαντήσεις 5 10-04-12 18:06
Δημιουργία Πίνακα Με Συγκεκριμένο Αριθμό Εγγραφών mistirios Access - Ερωτήσεις / Απαντήσεις 42 07-09-10 12:58


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