Access Abfrage Variable

Hallo,
Ich habe eine Abfrage in Access und möchte den Inhalt einer Variablen (A_Email) nach Word übergeben.
Funktioniert auch. Nun möchte ich jetzt links 8 Stellen und rechts 1 Stelle nicht ausgeben, daher ein teilstring mit dem befehl teil.
Mein darstellung in der Abfrage:
A_Email_Neu: Teil([A_Email];9;Länge([A_Email]-9))
funktioniert nicht, wie muss er richtig ausssehen, kann mir jemand helfen ?
Danke gruss Jürgen

Hy Jürgen,

ich gehe davon aus das du das Ergebniss der Abfrage mit Hilfe von VBA an Word übergibst. In dem Fall das Ergebniss der Abfrage an eine Variable von Typ String übergeben und dann diese Variable bearbeiten.

Etwa so

Public Function TextBeschneiden(Str_In As String) As String
Dim Str_Text As String
'Alles von der Linken Seite minus eine Stelle also Rechts eine Stelle abgeschnitten
Str_Text = Left(Str_In, Len(Str_In) - 1)
'Demetsprechend jetzt alles von der Rechten Seite minus acht stellen
Str_Text = Mid(Str_Text, 9, Len(Str_Text) - 8)
'Und Uebergabe
TextBeschneiden = Str_Text
End Function

Viel Spass damit

Frank

P.S. Wer einen Rechtschreibfehler findet darf ihn behalten!

Hallo Jürgen,

es muss lauten:
A_Email_Neu: Teil$([A_Email];9;Länge([A_Email])-9)

Gruß
Horst Müller

Hallo Jürgen,

du hast einen kleinen vertipper:

A_Email_Neu: Teil([A_Email];9;Länge([A_Email])-9)

Versuchs mal.

Gruß
Thomas

Moin,

links 8 wegschneiden:
right([A_Email];(length([A_Email])-8))

rechts eine Stelle weglassen:
(left([A_Email];(length([A_Email])-1)))

Jetzt die Funktionen ineinander einsetzen:
right((left([A_Email];(length([A_Email])-1)));(length([A_Email])-8))

Sollte gehen…
Vorsicht, wenn der String kürzer als 9 Zeichen ist…

Mit der Funktion Teil = Mid müsste das so gehen:

mid([A_Email];9;(length([A_Email])-1))

Gruß
Leo

Hallo,

So müsste er funktionieren
Teil([A_Email];9;Länge([A_Email])-9)

Gruß
Marco

Keine Ahnung was du falsch machst.
Ich hab testweise
Ausdr1: teil(„1234567890“;3;länge(„1234567890“-3) in ne leere Abfrage eingegeben und es hat getan. Allgemein hilft es, die Fehlermeldung zu lesen.
Auch wäre interessant, was eigentlich passiert.
Wenn ich nach Amerika fliegen will und es klappt nicht, sollte man für n Tipp auch wissen, ob ich im Treppenhaus gestürzt bin, das Ticket nicht bezahlen konnte, eine Pistole im Jacket hatte, meine Mama es verboten hat …
Okay?

Nur zur Info, habe die Antwort von anderer Stelle bekommen, die letzte Klammer muss vor der -9 stehen, dann klappt es.
Gruss Nagel

Danke, jetzt klappts.
Gruss nagel

Hi Thomas,
danke, jetzt klappts.
Gruss Jürgen

Hi,
sorry, die Frage habe ich eben erst geöffnet.
Deine Syntax ist richtig mit der einen Ausnahme, daß an beiden Stellen die Angabe der Tabelle fehlt.

Also vor das [A_Email] muß jeweils noch:
[Tabellenname]!
(wobei „Tabellenname“ ein Dummy ist, dafür mußt Du den namen der Tabelle einsetzen, die das Feld A_Email enthält).

So also:
A_Email_Neu: Teil([Tabellenname]![A_Email];9;Länge([Tabellenname]![A_Email]-9))

Beachten mußt Du, daß diese Konstruktion einen Fehler ausgibt für jeden Datensatz, in dem A_Email weniger als 9 Zeichen lang ist.

Die Syntax ist falsch. Die Funktion LÄNGE() muss A_Email einklammern, also
A_Email_Neu: Teil([A_Email];9;Länge([A_Email])-9)
achte auf die Position der vorletzten Klammer! So müsste es klappen.
Gruß

Hallo Jürgen,

falls Du noch keine Lösung hast,
Du hast nur eine Klammer ) an der falschen stelle.
Teil([A_Email];9;Länge([A_Email])-9)

Schöne GrÜße :smile:

Danke, gruss Jürgen