Hallo zusammen,
in einer Abfrage nutze ich den Ausdruck 9: ZInteger(Asc(Teil([NAME];9;1))) um mir den Zeichencode des 9. Buchstabens der Zeichenfolge ausgeben zu lassen. Funktioniert. Ausgabewerte sind Zahlen.
Da jedoch nicht alle Feldinhalte gleich lang sind läuft bei kürzeren Namen "#FUNKTION!" auf. Um dies zu umgehen, ergänzte ich den Ausdruck zu 9: Wenn(Länge([name])<9;"";ZInteger(Asc(Teil([NAME];9;1)))). Nun allerdings ist das Ergebnis keine Zahl mehr (rechtsbündig), sondern ein String (Zahlenwert wird linksbündig angezeigt).
Den Feldname "NAME" habe ich nicht zu verantworten. ;)
Wo liegt mein Fehler?
Danke für jeden Tipp!
ZitatWenn(Länge([name])<9;""; ...
Hier erklärst Du das Ergebnis als Text.
Danke ebs17, aber er soll ja nur "" schreiben (also Feld leer lassen), wenn die auszuwertende Zeichenfolge kürzer ist als 9 Zeichen.
EDIT: Habe den Ausdruck jetzt wie folgt geändert 9b: Wenn(Länge([name])<9;Null;ZInteger(Asc(Teil([NAME];9;1)))) und jetzt klappt es.
Hallo,
das Ergenis wird Text auch wenn nur ein Teil der Bedingung erfüllt ist.
Außerden ist ein Feld mit "" nicht wirklich leer, es enthält einen Nullstring und ist nur scheinbar leer.
Versuche es mal mit NULL statt dem "".
danke, Klaus.
Auf den Ansatz war ich parallel auch gerade gekommen. :)