Hallo zusammen,
in einer Tabelle (Feldtyp "Memo") ist in den Datensätzen in unregelmäßiger Auflistung ein Datum im Format JJJJMM enthalten.
Beispiel:
sonstiger text ohne Datum
hosenträger zeit: 201308 bis zeit: 201310
sonstiger text ohne Datum
blusenteil in gelb zeit: 201406
sonstiger text ohne Datum
kleidergürtel bis zeit: 201407
handtasche lederoptik und fellaplikation zeit: 101212
sonstiger text ohne Datum
Die einzige Regelmäßigkeit ist die Information vor dem Datum = "zeit: "
Bekommt man die Darstellung in der Tabelle so hin das es wie folgt aussieht?
sonstiger text ohne Datum
hosenträger zeit: 08/2013 bis zeit: 10/2013
sonstiger text ohne Datum
blusenteil in gelb zeit: 06/2014
sonstiger text ohne Datum
kleidergürtel 120 cm bis zeit: 07/2014
handtasche lederoptik und fellaplikation zeit: 12/1012
sonstiger text ohne Datum
usw.
Gibt es da eine Möglichkeit um zum gewünschten Ergebnis zu kommen? Ich bitte um Eure Hilfe
Gruß Torsten.
Hallo,
gibt es maximal nur 2 Zeiteinträge ?
PS:
Die bessere Lösung wäre das Memofeld zu eliminieren und die Daten in getrennten Feldern als jeweils ein Datensatz abzulegen.
So wie das jetzt ist, widerspricht das den einfachsten Datenbankregeln.
Hallo,
ja es gibt max. nur 2 Zeiteinträge, aber es gibt auch Datensätze da folgen nach dem Zeiteintrag weitere Zeichen.
Ich glaube das das eine Separation des Datums schwierig gestaltet.
Beispiel:
sonstiger text ohne Datum
hosenträger zeit: 201308 bis zeit: 201310 in verbindung mit
sonstiger text ohne Datum
blusenteil in gelb zeit: 201406 als strick
sonstiger text ohne Datum
Oder sehe ich das falsch?
Gruß Torsten.
Hallo,
Vorschlag zur akt. Situation:
Aufruf der folgenden Public-Funktion in einer Aktualisierungsabfrage:
Public Function fkt_Replace_Datum(strMemo As String)
Dim str As String, i As Long, strErg As String
i = 1
strErg = strMemo
Do Until i >= Len(strMemo) - 6
i = InStr(i, strMemo, "zeit: ") + 6
If i = 6 Then Exit Do
str = Mid(strMemo, i, 6)
If IsNumeric(str) Then strErg = Replace(strErg, str, Right(str, 2) & "\" & Left(str, 4), 1)
Loop
fkt_Replace_Datum = strErg
End Function
Update tblTabelle1 Set MemoFeld= fkt_Replace_Datum([MemoFeld]) Where MemoFeld is not Null
Franz, leider komme ich mit Deinem Vorschlag nicht zum Ergebnis.
Ich habe mal die Test-DB angehängt.
Bitte schaue da nochmal drüber.
Gruß Torsten.
Hi,
wenn du nun anstelle von "Zeit" das Wort "Baujahr" im Text stehen hast, musst du die Position des Datums natürlich anders ermitteln.
BTW:
"Description" ist ein schlechter Feldname, da das in Access ein reserviertes Wort ist.
Das war es gewesen,
Baujahr/Zeit ist klar war mein Fehler - und die Feldbezeichnung description (war auch mein Fehler).
In desc geändert und funktioniert jetzt wunderbar.
Vielen Dank Euch beiden, Franz und MaggieMay
Gruß Torsten.
"Desc" ist auch ein reserviertes Wort in Access (-> SQL), aber möglicherweise weniger "brisant".
Uuups, dann werde ich den auch abändern.
Danke für den Hinweis.
Gruß Torsten.