Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Καλησπέρα σε όλη την ομάδα! Θα ήθελα την βοήθειά σας για το εξής θέμα. Μέσω ενός ερωτήματος θέλω να απομονώνω μία λέξη με 36 χαρακτήρες (γραμμάτων και αριθμών) που περιέχεται σε ένα πεδίο Text με format "Υπόμνημα" και να εμφανίζεται αυτή η λέξη σε ένα διαφορετικό πεδίο. Ουσιαστικά πρόκειται για ένα ID που μπορεί να έχει καταχωρηθεί, στην αρχή, στο τέλος του ή σε οποιοδήποτε σημείο κειμένου. Επειδή δεν υπάρχουν άλλες λέξεις με 36 χαρακτήρες, ο εντοπισμός το κάνει πιο εύκολο. Υπάρχει κάποιος που θα μπορούσε να με βοηθήσει; Ευχαριστώ εκ των προτέρων Γρηγόρης |
#2
| ||||
| ||||
![]()
Καλημέρα σε όλους! Έχουμε έναν πίνακα με το όνομα "tbl1" με τα πεδία: ID (αναγνωριστικό) και MemoString (Μεγάλο κείμενο) Ο κώδικας SQL σε ερώτημα που θα σου επιστρέψει όσες εγγραφές περιέχουν λέξεις μήκους 36 χαρακτήρων μπορεί να είναι ο εξής: Κώδικας: SELECT tbl1.ID, ' ' & [MemoString] & ' ' AS MyText FROM tbl1 WHERE (((' ' & [MemoString] & ' ') Like "* " & String$(36,"?") & " *")); Για να εμφανίσουμε μόνο το τμήμα των 36 χαρακτήρων τροποποιούμε τον κώδικα του ερωτήματος έτσι: Κώδικας: SELECT tbl1.ID, GetWordFromLengtn([MemoString],36) AS TheWord FROM tbl1 WHERE (((' ' & [MemoString] & ' ') Like "* " & String$(36,"?") & " *")); Ο κώδικας της συνάρτησης: Κώδικας: Public Function GetWordFromLengtn(strWord As String, iLen As Integer) As String Dim VarArray() As String Dim i As Integer strWord = Replace(strWord, " ", " ") VarArray = Split(strWord) For i = 0 To UBound(VarArray) If Len(Trim(VarArray(i))) = iLen Then GetWordFromLengtn = Trim(VarArray(i)) Exit Function End If Next End Function Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 24-02-20 στις 16:43. Αιτία: Διόρθωση κώδικα |
#3
| |||
| |||
![]()
Τάσο θα το δοκιμάσω και εάν έχω κάποιο πρόβλημα θα σε ενημερώσω Σε ευχαριστώ θερμά! Γρηγόρης |
#4
| ||||
| ||||
![]()
Να είσαι καλά Γρηγόρη! Δες τον (τροποποιημένο) κώδικα VBA ξανά αν θέλεις. Έπρεπε να διορθώσω κάποια λάθη που περιείχε. Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#5
| |||
| |||
![]()
Τάσο καλημέρα, Λειτουργεί μία χαρά! Ευχαριστώ πολύ Γρηγόρης |
#6
| |||
| |||
![]()
Τάσο καλημέρα, Σε αρχείο mdb που τρέχει με Access 2003 λειτουργεί σωστά. Σε αρχείο mdb ή accdb που τρέχει με Access 2013, o κώδικας λειτουργεί σωστά εάν οι λέξεις μήκους 36 χαρακτήρων βρίσκονται στους πρώτους 255 χαρακτήρες. Εάν το MemoString περιέχει περισσότερους χαρακτήρες δεν μου εντοπίζει την λέξη αυτή, Θα μπορούσες να το ξαναδείς; Ευχαριστώ εκ των προτέρων Γρηγόρης |
#7
| ||||
| ||||
![]()
Καλημέρα Γρηγόρη! Θα σου πω τι σκέφτομαι με την ελπίδα ότι θα βοηθήσω. 1. Δεν μπόρεσα να αναπαραγάγω το πρόβλημα σου 2. Με τον κώδικα VBA που χρησιμοποιείται δεν υπάρχει διαφορά στη συμπεριφορά του προγράμματος ανάμεσα σε εκδόσεις Access 2000 έως και 2019. Να είσαι σίγουρος γι' αυτό. 3. Για να εντοπιστεί το κείμενο των 36 χαρακτήρων, προϋποθέτει διαστήματα στην αρχή και στο τέλος του. 4. Η συνάρτηση λειτουργεί κανονικά ακόμα και σε κείμενο με πάρα πολλές χιλιάδες χαρακτήρες. Τι συνάρτηση ή τι ερώτημα χρησιμοποιείς που σου επιστρέφει μόνο τους πρώτους 255 χαρακτήρες από το πεδίο μεγάλου κειμένου που τους στέλνεις στη συνέχεια στη συνάρτηση στο όρισμα MemoString; Σου επισυνάπτω ένα παραδειγματικό αρχείο σε *.accdb. Αφού το κατεβάσεις άνοιξε το ερώτημα Qry1. Θα δεις ότι η εγγραφή με το ID 2 που περιέχει 1441 χαρακτήρες εμφανίζεται κανονικά. Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 26-02-20 στις 11:46. |
#8
| |||
| |||
![]()
Τάσο καλησπέρα, Τελικά το πρόβλημα οφείλεται σε ένα συνδεδεμένο excel σε μορφή xls που μου φέρνει μόνο τους πρώτους 255 χαρακτήρες. Θα το έλεγξω σε αυτό το σημείο και λογικά δεν θα έχω πρόβλημα. Ευχαριστώ Γρηγόρης |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
ΕΥΡΕΣΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΕΡΩΤΗΜΑ ΣΥΓΚΕΚΡΙΜΕΝΟΥ ΔΙΑΣΤΗΜΑΤΟΣ | smasak | Access - Ερωτήσεις / Απαντήσεις | 1 | 26-09-18 18:12 |
Μετατροπή αριθμού σε κείμενο σταθερού μήκους | dimgks | Access - Ερωτήσεις / Απαντήσεις | 2 | 29-03-18 10:37 |
[ Ασφάλεια] κλειδωμα συγκεκριμενου πεδιου σε 2ουσα φορμα | pakos | Access - Ερωτήσεις / Απαντήσεις | 1 | 23-07-17 11:45 |
Ενημέρωση Συγκεκριμένου Πεδίου σε πίνακα | pctechdr | Access - Ερωτήσεις / Απαντήσεις | 6 | 18-11-13 20:10 |
Άνοιγμα συγκεκριμένου αρχείου Pdf | Free_Ghost | Access - Ερωτήσεις / Απαντήσεις | 11 | 25-09-13 20:29 |
Η ώρα είναι 14:51.