2017-02-16 23 views
0

Ich bin nicht 100% sicher, wie man sogar meine Frage! Ich habe ein Feld mit Text in (automatisch aus einem Bericht befüllt) und im Format "Home/area/process /" gibt es eine schnelle Möglichkeit, den Bereichstext zu extrahieren.Ziehen von Text aus einem anderen Textfeld in MS-Access

Es ist immer das gleiche am Anfang, aber nach Bereich könnte es "/ Prozess/mehr Prozesse" oder sogar "/ Informationen/mehr Informationen", so kann ich etwas ziehen, die einfach ist "extrahieren alles zwischen" Home/und/Prozess“

hoffentlich das Sinn, ich habe über 9000 Einträge dieses

Vielen dank im Voraus für alle :) zu tun, ich bin offen für VBA/abfragt etwas für Access 2007

+1

Das Schlüsselwort würde „Parsen“ einen String bewaffnet. Schauen Sie sich die Split-Funktion [hier] an (https://www.techonthenet.com/access/functions/string/split.php). Ihr Trennzeichen wäre "/". Sie können auch eine Kombination von String-Funktionen verwenden, um das gleiche zu erreichen, [siehe hier] (http://access.mvps.org/access/strings/str0001.htm) – MoondogsMaDawg

Antwort

2

Try:

Dim exampleString As String 
Dim exampleArray() As String 

exampleString = [field containing the string you want to split] 
exampleArray = Split(exampleString,"/") 

So zum Beispiel, wenn Sie die folgende Zeichenfolge in dem Feld haben Sie erwähnt: home/area/process

Und der Feldname ist txtField, die in einem Bericht rptSummary

Dann benannt ist Sie Folgendes tun könnte:

Dim exampleString As String 
Dim exampleArray() As String 

exampleString = Reports!rptSummary!txtField.Value 
exampleArray = Split(exampleString, "/") 

Sie könnten dann auf alle Indizes von exampleArray zugreifen und mit ihnen tun, was Sie bitte. Zum Beispiel, wenn Sie ein Popup zeigt den Inhalt jedes Index in exampleArray erstellen möchten, können Sie folgendes tun:

MsgBox exampleArray(0) //Creates a message box popup that displays "home" 
MsgBox exampleArray(1) //...displays "area" 
MsgBox exampleArray(2) //...displays "process" 

Sie könnten auch die Mid Funktion verwenden, die ein bisschen mehr Detail erfordert. Informationen dazu here.

Um mehr spezifischer als das zu sein, haben wir mehr Informationen über die Feldnamen benötigen würden, Reportnamen, sind Formen beteiligt usw.

+0

Danke dafür, ich habe VBA ein wenig verwendet in Excel aber nicht Zugriff. Im Wesentlichen ist "home/area/process" der Ort eines Dokuments in einem anderen System und ich muss den Bereich extrahieren, zu dem es gehört. Gibt es eine Möglichkeit, ExampleArray (1) zu einem Feld in meiner Tabelle (TblDocuments) namens "Area" hinzufügen? Vielen Dank für das bisher! – MalleyMob

+0

Schnell nach dem Morgenforschen ich denke, der einfachste Weg ist die Verwendung der Mid-Funktion bis jetzt habe ich alles vor dem ersten "/" mit [Mid ([documents.Location], InStr ([documents.Location], "/ ") +1) AS Area] jetzt muss ich daran arbeiten, alles nach dem zweiten"/"zu entfernen danke für die Hilfe und Zeiger – MalleyMob

+0

Angenommen, alles wird immer durch das Trennzeichen"/"getrennt, mit der' Split'-Funktion und nur 'exampleArray (1)' (oder wie auch immer Sie es nennen möchten) aufzuru- fen, wäre wahrscheinlich sauberer und definitiv leichter zu bearbeiten als das mehrfache Parsen mit der 'Mid'-Funktion. Zum Beispiel könnten Sie als Antwort auf Ihre erste Kommentarantwort etwas SQL schreiben und es in VBA ausführen (weisen Sie die SQL-Anweisung einer String-Variablen zu, führen Sie die Anweisung mit 'DoCmd.RunSQL' aus), um' exampleArray (1) 'anzuhängen ein Tisch. – UnseenSpecter

0

Ich habe es geschafft, dies 2-Abfragen, indem zu lösen und das Hinzufügen der folgendes die auf ein neues Feld - man den ersten Teil der Zeichenfolge „Home /“

firstArea: Mid([tblDocuments.Location],InStr([tblDocuments.Location],"/")+1)

dann entfernen Sie diese Abfrage mit mir einem anderen nur den nächsten Abschnitt angezeigt werden, bevor die „/“ erstellt habe (Mit nur dem ersten Ergebnis wurde alles nach dem Bereich hinzugefügt, dh das "/ process bit"

nicht die sauberste Art und Weise bin ich sicher, und es gibt ein paar Fehler für Dokumente mit nichts im Abschnitt "/ Process", aber insgesamt funktioniert.

Dank für die Zeiger, ich bin jetzt mit Parsing Saiten Wissen :)

Verwandte Themen