PDA

Vollständige Version anzeigen : abfrage letzte 4zeichen abschneiden; a2k win xp


rolf2
20.01.2003, 15:00
wie schneide ich die letzten n zeichen eines beliebig langen strings per abfrage ab?
die strings in der db sind unterschiedlich lang.
habe gegoogelt, in hilfe nachgeschaut, irgendwie finde ich nichts passendes.
vielen dank fuer eure hilfe.

gruss rolf (ein im moment verzweifelter anfaenger)

jmc
20.01.2003, 15:10
Hi Rolf

im Abfrage-Fenster schreibst du folgendes (Annahme: dein Feld heisst Bezeichnung und ist immer mindestens 5 Zeichen lang!)

KurzeBezeichnung: Left(Bezeichnung, Len(Bezeichnung)-4)

Der Befehl Left nimmt aus einem String von links soviele Zeichen wie nach dem Komma angegeben. Da du nicht weisst , wie lange dieser String jeweils ist, stellst du mit Len(String) die Länge fest, davon wiederum ziehst du 4 ab.
Alles klar ? (schau auch mal in die OL-Hilfe zu Left und Len) :cool:

genschman
20.01.2003, 15:10
Hallo Rolf,

in einer Aktualisierungsabfrage unter "Aktualisieren" eintragen:

TeilStr([Zeichenkettenfeld];1;Länge([Zeichenkettenfeld])-4)

wobei die 4 die Anzahl Zeichen angibt, die vom Ende abgeschnitten werden

good luck

genschman

rolf2
20.01.2003, 15:14
vielen dank genschman und jmc,

werde eure vorschlaege gleich mal austesten.

gruss rolf

jmc
20.01.2003, 15:17
Hallo Rolf und Genschmann

Der Vorschlag von Genschmann ist nicht falsch, aber hier, wo es darum geht von rechts abzuschneiden genügt eigentlich die Left-Funktion ...

Teilstr (bzw. Mid) wäre dann angesagt, wenn man etwas mittenheraus will

schaut einfach in die OL-Hilfe zu Left, Mid, Right ;)

rolf2
20.01.2003, 15:30
Hallo jmc, genschman und all die Anderen,

habe mich etwas falsch ausgedrueckt.

Meine strings sehen zb so aus:
dokument1.doc
doku7.doc
dft.bmp
...

Ich will jetzt zwar die letzten 4 Zeichen abschneiden, aber den Rest (zb dokument1) in ein neues Feld ausgeben.
Im Moment mein Ergebnis:
.doc
.doc
.bmp

Vielen Dank.

Gruss Rolf

genschman
20.01.2003, 15:40
Hallo,

und ebendas macht mein Vorschlag :confused:

Aus einer Zeichenkette von der 1. Stelle von links beginnend bis zur 5. Stelle von rechts. Das sollte eigentlich zu Deiner gewünschten Lösung führen!

good luck

genschman

rolf2
20.01.2003, 16:09
sorry genschman,

wollte deine Lösung nicht ignorieren ;)
Aber irgendwie bekomme ich es grad nicht auf die Reihe.

Wenn ich meine Aktualisierungsabfrage laufen lassen will, kommt folgende Fehlermeldung:

Undefinierte Funktion 'TeilStr' im Ausdruck.

Gruss Rolf

genschman
20.01.2003, 16:19
na das sind wieder die besonderen Tricks von MülliSoft, um ihre Nutzer in Bewegung zu halten. In ACCESS 97 heißt das TeilStr, ab ACCESS 2000 dann nur noch Teil , also ohne das Str.
Dann sollte es eigentlich klappen. Ich hatte irgendwie überlesen, dass Du mit ACCESS 2000 arbeitest :D :biggrinl: :D

rolf2
20.01.2003, 16:22
Hai genschman,

ich glaube MülliSoft ist der richtige Ausdruck dafür.
Jetzt klappt alles tadellos.
Vielen Dank.

Gruss Rolf

jmc
20.01.2003, 16:26
Hi zusammen

nix Müllsoft (obwohl ich schon öfters 'Microschrott' dazu sagte ;) )

aber nehmt doch einfach die englischen Ausdrücke, eben Left, Right, Mid
Access setzt das dann nämlich schön um, so wie es eben in der jeweiligen Sprache/Version sein muss ... :10points:

rolf2
20.01.2003, 16:34
Hallo jmc,

das ist wirklich eine gute Möglichkeit diese Problem zu umgehen.
Aber mal ehrlich:
So ganz astrein ist das von Microsoft nicht, oder?
Bin kein Microsoft ist sch*****-Sager, aber:
Wenn ich eine neue Version irgend eines Produktes rausbringe, ist doch die allererste Anforderung:
Die neue Version muss alles können, was die alte auch kann.

Dieses Prinzip wird von MS aber leider öfter ignoriert.

Vielen Dank noch einmal für deine Hilfe!

Gruss Rolf