mobuns
Goto Top

VBA Split Funktion auf eine Access Tabelle Anwenden

Hallo,

ich habe folgendes Problem,

in einer Tabelle in access 2010 steht folgendes

"xyz (50%) xy" das xyz und das xy sind nicht immer gleich lang.

wie muss meine Split funktion in VBA aussehen, dass ich nur die 50 in einer Splate stehen habe?

Vielen Dank für eure Antworten ;)

Content-Key: 220638

Url: https://administrator.de/contentid/220638

Printed on: April 24, 2024 at 22:04 o'clock

Member: Snowman25
Snowman25 Oct 28, 2013 at 16:45:34 (UTC)
Goto Top
Hallo @mobuns,
Probiers mit
Dim Result as String = Split(Split("xyz (50%) xy", "(")(1), "%")(0)
Ich bin mir nicht sicher, ob das direkte Ansprechen der Array-Elemento so funktioniert. Probier's aus face-smile

Gruß,
@Snowman25
Member: colinardo
colinardo Oct 28, 2013 at 17:19:14 (UTC)
Goto Top
Hallo JokerM,
und wenn du gleich alle Datensätze deiner Tabelle updaten willst, kannst du folgenden Code verwenden:
(Namen der Tabelle in Zeile 2, und den Spaltennamen in der jetzt deine Werte stehen in Zeile 3 angeben)
Sub UpdateFields()
    Const TABELLE = "Tabelle1"  
    Const SPALTE = "Prozent"  
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(TABELLE)
    
    While Not rs.EOF
        fld_split = rs.Fields(SPALTE).Value
        arrSplit = Split(fld_split, "(")  
        If UBound(arrSplit) > 0 Then
            new_value = arrSplit(1)
            new_value = Left(new_value, InStr(1, new_value, "%",vbTextCompare) - 1)  
            rs.Edit
            rs.Fields(SPALTE).Value = new_value
            rs.Update
        End If
        rs.MoveNext
    Wend
    rs.Close
End Sub

Grüße Uwe
Member: mobuns
mobuns Oct 28, 2013 at 20:17:53 (UTC)
Goto Top
Danke euch beiden für die Antworten.
@ Snowman der code ist leider auf einen Fehler gelaufen... da ich beide antworten gleichzeitig gesehen habe, habe ich dierekt Uwes Antwort ausprobiert.

@ Uwe die Antwort ist klasse.

Ich musste nur die Konstanten nur durch die Werte aus meiner Datenbank füllen und Fertig.

Danke schön somit setzte ich die Frage auf gelöst.