Ausschneiden

Hallo Leute,

ich manipuliere mittels einer VBA-Schleife die Datensätze einer Access-Tabelle. Die Begriffe Mid, trim usw. sind mir bekannt.
Ich suche aber noch einen Ausdruck, der aus einem String etwas ausschneidet und in eine andere Spalte setzt.

Hat jemand einen Tipp worunter ich in der Hilfe nachschauen kann ?

Christian

Hallo Leute,

Hallo Christian,

ich manipuliere mittels einer VBA-Schleife die Datensätze
einer Access-Tabelle. Die Begriffe Mid, trim usw. sind mir
bekannt.
Ich suche aber noch einen Ausdruck, der aus einem String etwas
ausschneidet und in eine andere Spalte setzt.

Mit einen Einzeiler wird das nicht gehen!
Ich selbst habe von VBA keine Ahnung, aber von VB ein wenig. Ich hoffe mal das die Befehle die unter VB gültig sind, auch unter VBA gültig sind!
Wenn nicht schau mal hier: FAQ:2906

Ansonsten weisst du ja schon die Befehle die du benötigst!

Wenn du Deinen Datensatz hast, also den Wert Deiner Spalte, die dir als String vorliegt, so wie ich das entnehme, so kannst du den String manipulieren mittels

MID -> Gibt die Anzahl Zeichen von Position X bis Y wieder! Hiermit kannst du einen String hervorragend schneiden.

Trim -> Entfernt Leerzeichen am Anfang und Ende

Instr -> Gibt dir die Position eines Zeichens, innerhalb einer Zeichenfolge wieder.In Zusammmenarbeit mit MID hervorragend :wink:

Replace -> Ersetzt Zeichen X durch Zeichen Y! Auch hiermit kann man einen String schneiden.

Left -> Gibt dir Anzahl Zeichen X von Links zurueck. In Zusammenarbeit mit Instr auch hervorragend

Right -> Wie Left nur von Rechts

Ansonsten kannst du einen String auch noch mittels regulären Ausdrücken bearbeiten.

Um nun die Daten in einen neuen Datensatz einzusetzen, verwende die genannten Befehle und dazu den Operator &

Klingt nun alles ein wenig wirr, ist es aber nicht. Hier eine kleine Vorgehensweise

Dim S1 As String
Dim S2 As String
'Der Wert vom Datensatz 1 hier S1, als String
S1 = "Hallo, wie geht es Dir denn heute?"
'Der Wert vom Datensatz 2 hier S2, als String
S2 = "Danke, gut aber wie geht es Ihnen?"
'Wir schneiden etwas heraus, mittels Mid, Instr und Right
S1 = Mid(S1, 1, InStr(1, S1, "heute?", vbTextCompare) - 1) & Right(S1, 1)
MsgBox S1
'Wir weisen S1 mal den alten Wert wieder zu
S1 = "Hallo, wie geht es Dir denn heute?"
MsgBox S1
'Alternativ könnte man den String auch mittels Replace schneiden
S1 = Replace(S1, "heute", "")
MsgBox S1
'wir setzen S1 auf den ursprünglichen Wert
S1 = "Hallo, wie geht es Dir denn heute?"
'Wir manipulieren nun S2, mittels Mid, Instr und Right
MsgBox S2
S2 = Mid(S2, 1, InStr(1, S2, "Ihnen", vbTextCompare) - 1) & Mid(S1, InStr(1, S1, "Dir", vbTextCompare) - 1, InStr(1, S1, "heute", vbTextCompare) - 5 - InStr(1, S1, "Dir", vbTextCompare)) & Right(S2, 1)
MsgBox S2
'Wir setzen S2 auf sein Ursprungswert
S2 = "Danke, gut aber wie geht es Ihnen?"
'Wir manipulieren S2 mittels Replace
S2 = Replace(S2, "Ihnen", Mid(S1, InStr(1, S1, "Dir", vbTextCompare), InStr(1, S1, "heute", vbTextCompare) - 5 - InStr(1, S1, "Dir", vbTextCompare)))
MsgBox S2

Hat jemand einen Tipp worunter ich in der Hilfe nachschauen
kann ?

Schau dir mal die von mir genannten Befehle an!

Christian

MfG Alex

Danke Anno,

hab ich hinbekommen !