Zeichen vor und nach einem Suchwort löschen

  • Access

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Eierlein.

    Zeichen vor und nach einem Suchwort löschen

    Good morning.

    Leider komm ich mit den vorhandenen VBA Funktionen für Zeichenketten gar nicht weiter.
    Quelle: vbarchiv.net/commands/index.php?cat=strings
    Bei PHP gibts da schon einige mehr, aber naja, ich erkläre erstmal mein Problem:

    Ich lese mit folgendem Befehl, den Speicherort einer Excel-Datei aus dem Tab.Verkn-Managr aus:

    Visual Basic-Quellcode

    1. sring = CurrentDb.TableDefs("ExcelDatei").Connect


    Ausgabe:
    Excel 5.0;HDR=YES;IMEX=2;DATABSE=D:\...\ExcelDatei.xls


    Allerdings möchte ich nur den Pfad.
    Da ich nicht weiß ob der Teilstring vor dem Suchwort "DATABASE" immer gleich lang ist, nehme ich mal an, dass er das nicht ist. Also habe ich zB so einen String:




    Excel 17.5;xyz=YES;abc=NO;lala=bububu;SUCHWORT=PFAD





    Paar Merkmale des Strings:


    - Die Länge der Zeichen vor SUCHWORT ist verschieden lang


    - Das SUCHWORT heißt immer gleich
    (in meinem Fall DATABASE)

    - Nach dem SUCHWORT kommt immer ein "=" und dann ein belieb langer PFAD


    - Es kann sein, dass das SUCHWORT auch im PFAD vorkommt





    Ich möchte nur den PFAD erhalten.








    Also ich habe mir das so vorgestellt:


    Nach dem ersten auftreten des SUCHWORTes, alles davor abschneiden.


    Dann das "=" nach dem SUCHWORT abschneiden


    Dann das SUCHWORT abschneiden


    -> PFAD bleibt übrig





    Aber mit was für Funktionen kann ich da am besten hantieren in VBA?

    Gibt es denn noch mehr für Zeichenketten außer die bei vb@rchiv genannten?
    Oder ist der Teil vor dem "DATABASE" immer gleich? Weil dann kann ich ja theoretisch immer nach dem dritten "=" suchen und dann alles davor löschen. Aber das weiß ich leider nicht...




    Danke
    Perfekt.

    Falls wer ein ähnliches Problem hat, hier ein Lösungsansatz:

    Visual Basic-Quellcode

    1. sring = CurrentDb.TableDefs("NameDerExcelDatei").Connect
    2. sArray = Split(sring, ";", -1)
    3. For i = 0 To UBound(sArray)
    4. TeilString = i + 1 & ". " & sArray(i)
    5. If Mid$(TeilString, 4, 9) = "DATABASE=" Then
    6. tsArray = Split(TeilString, "=", -1)
    7. End If
    8. Next
    9. MsgBox tsArray(1) 'Liefert den Pfad meiner ExcelDatei die mit dem Tabellenverknüpfungs-Manager verknüpft ist


    Danke

    Eierlein schrieb:

    Oder so:

    Visual Basic-Quellcode

    1. DIM sring AS STRING, Teilstring AS STRING, p AS LONG
    2. sring = CurrentDb.TableDefs("NameDerExcelDatei").Connect
    3. p = INSTR(sring, "DATABASE=")
    4. IF p THEN TeilString = MID$(sring, p + 9)
    5. MSGBOX Teilstring 'Liefert den Pfad meiner ExcelDatei die mit dem

    Das funktioniert nur, wenn DATABASE als letzter Parameter angegeben worden ist. Sobald dieser mit z.B. HDR oder IMEX vertauscht -> funktioniert diese Methode nicht mehr.