Parsen von Text in MS-Access
Habe ich Spalte, die Zeichenfolgen enthält. Die Texte in dieser Spalte wie folgt Aussehen:
FirstString/SecondString/ThirdString
Brauche ich, um zu analysieren, so daß ich zwei Werte haben:
Wert 1: FirstString/SecondString
Wert 2: ThirdString
Hätte ich eigentlich mehr Saiten, aber ich habe immer nee es getrennt wie [string1/string2/string3/...][stringN]
Was ich brauche, um am Ende, ist diese:
Column1: [string1/string2/string3/etc....]
Spalte 2: [stringN]
Kann ich nicht finden, jedenfalls in access zu tun. Irgendwelche Vorschläge? Muss ich reguläre Ausdrücke? Wenn ja, gibt es eine Möglichkeit, dies zu tun in der Abfrage-designer?
Update: Beide Ausdrücke geben mir diese Fehlermeldung: "Der von Ihnen eingegebene Ausdruck ist syntaktisch falsch, oder Sie müssen schließen Sie Ihre text-Daten, die in Anführungszeichen gesetzt werden."
expr1: Left( [Property] , InStrRev( [Property] , "/") - 1), Mid( [Property] , InStrRev( [Property] , "/") + 1)
expr1: mid( [Property] , 1, instr( [Property] , "/", -1)) , mid( [Property] , instr( [Property] , "/", -1)+1, length( [Property] ))
InformationsquelleAutor Micah | 2008-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie In einer Abfrage die folgenden beiden Ausdrücke als Spalten:
col ist die Spalte ein.
Wenn in VBA, verwenden Sie die folgende:
Wo sehen Sie den Typ der Spalten und "/" Sie gibt einen Fehler? Bitte aktualisieren Sie Ihre Frage mit den vollständigen SQL-Anweisung, um Ihnen eine vollständige Antwort.
InformationsquelleAutor tzot
Mitte(col, 1, instr(Zeile, "/", -1)) , mid(Zeile, instr(col, "/", -1)+1, Länge(col))
col ist angeblich Ihre Spalte.
SubClassName: mid( [Property] , 1, instr( [Eigenschaft] , "/", -1)) , mid( [Property] , instr( [Eigenschaft] , "/", -1)+1, Länge( [Property] )) sagt es ungültige Daten enthält, oder Sie müssen schließen Sie den text in Anführungszeichen.
check mein Abfrage-code in meiner Antwort. Beachten Sie auch, dass beide pappes " und meine Antwort definieren beiden Spalten; Ihr Kommentar schlage vor, Sie kopieren-einfügen als Ausdruck für einzige Spalte.
Das war mein problem. Allerdings habe ich noch nicht bekommen konnte pappes richtig zu arbeiten.
InformationsquelleAutor pappes
Ich weiß, Sie versuchen zu tun, diese innerhalb einer Abfrage den SQL-string-Funktionen sind wahrscheinlich Ihre beste Wette.
Jedoch, es ist erwähnenswert, dass es einen regulären Ausdruck ein COM-Objekt zugänglich von VBA. Fügen Sie einfach einen Verweis auf die Microsoft VBScript Regular Expressions Bibliothek innerhalb Ihrer makro-code.
Dann können Sie tun Sachen wie diese
InformationsquelleAutor Mark Biek
Gibt es eine chance, die Sie beheben können die zugrunde liegenden Daten-Struktur ordnungsgemäß normiert, so dass können Sie vermeiden, das problem in den ersten Platz? Zusammen mit der Abruf der Daten kommt eine ganze Reihe oder Probleme mit der Aufrechterhaltung es genau, und das würde alle werden abgefedert, wenn Sie nicht das speichern mehrerer Werte in einem einzigen Feld.
InformationsquelleAutor David-W-Fenton