Hallo zusammen,
in einer Abfrage verwende ich:
ZDouble(Links([Abmessung];InStr([Abmessung];"X")-1))
um einen Wert bis zum ersten Zeichen von Links "x" auszulesen.
Klapp sehr gut.
Nun kann es vorkommen, dass kein "x" oder keine Zahlen im Feld vorhanden sind.
1,0x1000x1000 (ist ok)
1,0-1,2x1000x1000 (führt zum #Fehler)
keine Abmessung (führt auch zum #Fehler)
Dieser Eintrag in der Abfrage führt zu einen Abbruch bei der weiteren Verwendung in einem Formular.
Wie kann ich die Abfrage anpassen, dass nicht "#Fehler" in dem Feld steht.
Danke für Eure Hilfe
Hallo,
statt mit solchen Verrenkungen zu arbeiten wäre ein atomarer Aufbau der Tabellen anzustreben. Da bleiben Fehler dieser Art dann aus.
Also einmalig die Werte trennen und freuen, dass es künftig unkompliziert läuft.
Sorry, dass ich nicht alle Infos gegeben haben.
Du hast recht, aber die Daten kommen aus einem anderen System (AS400) und ich habe auf dieses alphanumerische Feld keinen Einfluss.
Habt Ihr einen Tipp, wie ich diese "Verrenkung" doch noch lösen kann?
Zitat
Du hast recht, aber die Daten kommen aus einem anderen System (AS400) und ich habe auf dieses alphanumerische Feld keinen Einfluss.
Die Daten musst du natürlich so entgegen nehmen, wie sie kommen. Was du dann damit machst (ab dem Import) liegt aber in deiner Hand. So könnte zB ein Schritt nach dem Import sein, die Werte in sinnvolle Felder abzulegen und dann damit weiter zu agieren. Die Trennung würde dann nur einmal erfolgen und nicht jeder Abfrage, etc erneut.
Es ist kein Import der Daten, sondern es wird über ODBC "Live" auf die Daten der AS400 zugegriffen.
Ich kann dann "nur" noch mit einer Hilfstabelle arbeiten (Import). Wollte das aber vermeiden.
Bei einem Livezugriff könnte eine Funktion helfen. Ob das besser als ein Import hilft, musst du nach Sachlage entscheiden.
Solche Ausrücke tendieren leider dazu, lang auszufallen.
Wenn( IstNumerisch( Links( [Abmessung];
InStr( Nz( [Abmessung] ); "X" ) - 1 ) );
ZDouble( Links( [Abmessung];
InStr( [Abmessung]; "X" ) - 1 ) ) )