
24-02-20, 10:52
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Καλημέρα σε όλους!
Έχουμε έναν πίνακα με το όνομα "tbl1" με τα πεδία: ID (αναγνωριστικό)
και MemoString (Μεγάλο κείμενο)
Ο κώδικας SQL σε ερώτημα που θα σου επιστρέψει όσες εγγραφές περιέχουν λέξεις μήκους 36 χαρακτήρων μπορεί να είναι ο εξής: Κώδικας: SELECT tbl1.ID, ' ' & [MemoString] & ' ' AS MyText
FROM tbl1
WHERE (((' ' & [MemoString] & ' ') Like "* " & String$(36,"?") & " *"));
Τα κριτήρια μπορούν να χρησιμοποιηθούν και σε άλλες συναρτήσεις (DLOOKUP() κλπ.)
Για να εμφανίσουμε μόνο το τμήμα των 36 χαρακτήρων τροποποιούμε τον κώδικα του ερωτήματος έτσι: Κώδικας: SELECT tbl1.ID, GetWordFromLengtn([MemoString],36) AS TheWord
FROM tbl1
WHERE (((' ' & [MemoString] & ' ') Like "* " & String$(36,"?") & " *"));
όπου η GetWordFromLengtn() είναι η συνάρτηση VBA που μας επιστρέφει τη λέξη των 36 χαρακτήρων και πρέπει να περαστεί σε μια λειτουργική μονάδα (Module)
Ο κώδικας της συνάρτησης: Κώδικας: 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 στις 15:43.
Αιτία: Διόρθωση κώδικα
|