Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

CInt / ZInteger in Abfrage in Kombi mit if

Begonnen von liederstern, Februar 11, 2019, 11:01:53

⏪ vorheriges - nächstes ⏩

liederstern

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!
Viele Grüße,
Nicole

ebs17

ZitatWenn(Länge([name])<9;""; ...
Hier erklärst Du das Ergebnis  als Text.
Mit freundlichem Glück Auf!

Eberhard

liederstern

#2
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.
Viele Grüße,
Nicole

MzKlMu

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 "".
Gruß Klaus

liederstern

danke, Klaus.
Auf den Ansatz war ich parallel auch gerade gekommen. :)
Viele Grüße,
Nicole