Hallo RalfH,
hin und wieder programmiere ich auch etwas für Datenbanken. Allerdings in FoxPro ...
Folgenden Code habe ich mit der "Holzhammer-Methode" aus dem Boden gestampft. Die Routine erledigt grundsätzlich das, was Du haben möchtest.
* Temporäre Tabelle im Speicher erstellen mit einem Memofeld
create cursor test(TEXT M(4))
* leeren Satz einfügen
do blank
* Memofeld mit Beispieltext füllen
replace TEXT with "Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen hinterher."
* Jedes Leerzeichen durch Zeilenumbruch ersetzen
replace TEXT with strtr(TEXT," ",chr(13))
* Anzahl Zeilen ermitteln (für Schleife)
nZeilen=memlines(TEXT)
* Variablen für Schleifendurchlauf initialisieren
nZaehler=1
cWort=""
* weitere Tabelle für jede einzelne Zeile des Memofeldes temporär erstellen
create cursor ergebnis1(WORT C(254))
* In der Schleife jede Zeile des Memofeldes in einen Datensatz wandeln
do while nZaehler<=nZeilen
select TEST
cWort=mline(TEXT,nZaehler)
insert into ergebnis1(WORT) values(cWort)
nZaehler=nZaehler+1
enddo
select ergebnis1
go top
* einzelne Wörter von Sonderzeichen befreien
do while !eof()
replace WORT with strtr(WORT,",","")
replace WORT with strtr(WORT,".","")
skip
enddo
* 1. Ergebnis, wobei Groß- Kleinschreibung berücksichtigt wird
select WORT,count(1) as ANZ from ergebnis1 group by WORT into cursor ERGEBNIS2
brow
* jedes Wort in Großbuchstaben wandeln
select ergebnis1
go top
do while !eof()
replace WORT with upper(WORT)
skip
enddo
* 2. Ergebnis, wobei Groß- Kleinschreibung nicht mehr berücksichtigt wird
select WORT,count(1) as ANZ from ergebnis1 group by WORT into cursor ERGEBNIS3
brow
select WORT,count(1) as ANZ from ergebnis1 group by WORT into cursor ERGEBNIS3
brow
Wenn auch die Befehle in Access vermutlich im Einzelnen anders lauten, sollte das Grundgerüst auch in Access verwendbar sein.
Schreib zurück, wenn Du mit dieser Lösung etwas anfangen konntest.
(PS: sicher geht das Ganze auch eleganter ... aber wie gesagt: Holzhammer ... ;-) )
Gruß JoeMar