Datenbankfeld nach dem längsten Teilstring durchsuchen
Ich habe hier eine Access-Tabelle mit Vereinsbezeichnungen
Diese würde ich gerne per SQL-Abfrage durchsuchen, so dass die Anfangsposition des längsten Teilstrings in eine zweite Spalte geschrieben wird.
ICh habe nun schon versucht, die Anzahl der Leerzeichen zu bestimmen und darauf fußend die einzelnen Teilstrings zu bestimmen - allerdings schaffe ich das nicht für variable Anzahlen von Teilstrings...
Any hints?
Danke
Dirk
"MTG Mannheim"
"Polizei SV Eutin"
"Halstenbeker TV"
etc
Diese würde ich gerne per SQL-Abfrage durchsuchen, so dass die Anfangsposition des längsten Teilstrings in eine zweite Spalte geschrieben wird.
ICh habe nun schon versucht, die Anzahl der Leerzeichen zu bestimmen und darauf fußend die einzelnen Teilstrings zu bestimmen - allerdings schaffe ich das nicht für variable Anzahlen von Teilstrings...
Any hints?
Danke
Dirk
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135795
Url: https://administrator.de/forum/datenbankfeld-nach-dem-laengsten-teilstring-durchsuchen-135795.html
Ausgedruckt am: 23.04.2025 um 02:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo diwaffm!
In SQL bin ich leider nicht so fit - aber da Du ja Access verwendest, ein Vorschlag als VBA-Function:
Wenn Du diesen Code in ein Modul setzt, sollte danach die Aktualisierung des Feldes "LMax" in der Tabelle "Vereine" etwa so gehen:
Grüße
bastla
In SQL bin ich leider nicht so fit - aber da Du ja Access verwendest, ein Vorschlag als VBA-Function:
Function GetMaxSubStringLen(TheString As String) As Integer
Dim SubString As Variant, MaxLen As Integer, LenSub As Integer
For Each SubString In Split(TheString)
LenSub = Len(SubString)
If LenSub > MaxLen Then MaxLen = LenSub
Next
GetMaxSubStringLen = MaxLen
End Function
UPDATE Vereine SET Vereine.LMax = GetMaxSubStringLen([Vereinsname]);
bastla
Hallo diwaffm!
Sorry - zu oberflächlich gelesen ...
Mit dieser Function sollte es dann klappen:
Grüße
bastla
Sorry - zu oberflächlich gelesen ...
Mit dieser Function sollte es dann klappen:
Function GetPosMaxSubString(TheString As String) As Integer
Dim SubString As Variant, MaxSubString As String, MaxLen As Integer, LenSub As Integer
For Each SubString In Split(TheString)
LenSub = Len(SubString)
If LenSub > MaxLen Then
MaxLen = LenSub
MaxSubString = SubString
End If
Next
GetPosMaxSubString = InStr(TheString, MaxSubString)
End Function
bastla