ich habe in einer Abfrage folgenden Ausdruck 'int(left(partition1, instr(partition1,"GB")-1))' mit dem ich die Anzahl der Gigabyte vor der Bezeichnung 'GB' selektieren will. Nun wenn er 'GB' im Datensatz nicht findet oder das LEFT vor dem 'GB' keine Zahl ist,
bekomme ich #Fehler zurück. Wie kann ich den Wert #Fehler abfragen und z.B. mit 0 ersetzen?
iif 'Ausdruck' = #Fehler (oder is error) geht leider nicht...
Vielen Dank im Voraus!
Mit freundlichen Grüßen
Stefan Voit
Am 18.03.2008 08:06 schrieb Stefan Voit:
> Hallo,
>
> ich habe in einer Abfrage folgenden Ausdruck 'int(left(partition1,
> instr(partition1,"GB")-1))' mit dem ich die Anzahl der Gigabyte vor
> der Bezeichnung 'GB' selektieren will. Nun wenn er 'GB' im Datensatz
> nicht findet oder das LEFT vor dem 'GB' keine Zahl ist, bekomme ich
> #Fehler zurück. Wie kann ich den Wert #Fehler abfragen und z.B. mit 0
> ersetzen?
>
> iif 'Ausdruck' = #Fehler (oder is error) geht leider nicht...
Meinst das?
if( IsNumeric(int(left(partition1, instr(partition1,"GB")-1))) ;
int(left(partition1, instr(partition1,"GB")-1)); 0)
--
MfG - Lupus Goebel
Der Sumpf- und Morasthobbybastler und Anfaenger mit
Wissensdurst (http://www.lupusdw.de http://foto.lupusdw.de)
Meine private FAQ http://www.lupusdw.de/faq
Schau Dir mal in der Hilfe die Erläuterungen zu NZ an; Du könntest es mal so
probieren:
NZ(int(left(partition1, instr(partition1,"GB")-1));0)
--
Gruss
Jens
______________________________
2. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, 12./13.4 und 19./20.4.2008
FAQ: http://www.donkarl.com
Stefan Voit wrote:
> ich habe in einer Abfrage folgenden Ausdruck 'int(left(partition1,
> instr(partition1,"GB")-1))' mit dem ich die Anzahl der Gigabyte vor der
> Bezeichnung 'GB' selektieren will. Nun wenn er 'GB' im Datensatz nicht
> findet oder das LEFT vor dem 'GB' keine Zahl ist,
> bekomme ich #Fehler zurück. Wie kann ich den Wert #Fehler abfragen und
> z.B. mit 0 ersetzen?
>
> iif 'Ausdruck' = #Fehler (oder is error) geht leider nicht...
Die Funktion wäre wohl isError().
Dennoch solltest Du das ganze mal so anschauen:
val(Nz(partition1; 0))
Sollte in etwa das geben, was Du möchtest, ohne da rumoperieren zu müssen.
Falls Du lieber NULL haben möchtest, wenn die Partition nicht definiert ist,
dann so:
IIf(IsNull(partition1) = True; NULL; Val(partition1))
Gruss
Henry
--
SEK2 Anmeldung: http://donkarl.com/?SEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com
Stefan Voit:
> ich habe in einer Abfrage folgenden Ausdruck
> 'int(left(partition1, instr(partition1,"GB")-1))' mit dem
> ich die Anzahl der Gigabyte vor der Bezeichnung 'GB'
> selektieren will. Nun wenn er 'GB' im Datensatz nicht
> findet oder das LEFT vor dem 'GB' keine Zahl ist,
> bekomme ich #Fehler zurück.
Wenn Du Deine Daten wenigstens mal in die erste Normalform
bringen würdest, bräuchtest Du keine Zugriffe auf Teile
von Feldinhalten und hättest überhaupt kein Problem.
Gruß aus Mainz
Michael
das ist eine Datenübernahme in Tabellen, die der ersten Normalform entsprechen.
Danke.
Stefan Voit schrieb:
> ich habe in einer Abfrage folgenden Ausdruck 'int(left(partition1, instr(partition1,"GB")-1))' mit dem ich die Anzahl der Gigabyte vor der Bezeichnung 'GB' selektieren will. Nun wenn er 'GB' im Datensatz nicht findet oder das LEFT vor dem 'GB' keine Zahl ist,
> bekomme ich #Fehler zurück. Wie kann ich den Wert #Fehler abfragen und z.B. mit 0 ersetzen?
Benutze eine eigene Funktion, das macht es einfacher, z.B.
Public Function GetFileSize(AFieldValue As Variant) As Long
Dim Result As Long
Result = 0
If Not IsNull(AFieldValue) Then
..
End If
GetFileSize = Result
End Function
mfG
--> stefan <--
--
Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm
Michael Zimmermann wrote:
> Wenn Du Deine Daten wenigstens mal in die erste Normalform
> bringen würdest, bräuchtest Du keine Zugriffe auf Teile
> von Feldinhalten und hättest überhaupt kein Problem.
Du wagst Dich wieder auf's Glatteis! Vielleicht ist es ja gerade der
Versuch, irgend einen Import in wenigstens die 1NF zu bringen ;-) Wie im
anderen Thread bereits geschrieben, bleibe ich in solchen Situationen lieber
in der Möglichkeitsform, wirkt weniger absolutistisch und hilft meist
genauso gut ;-)
Henry Habermacher:
> Du wagst Dich wieder auf's Glatteis!
Na und? Ich bin ja nicht im Sternzeichen des Häschens
geboren. :-)
> Vielleicht ist es ja gerade der Versuch, irgend einen
> Import in wenigstens die 1NF zu bringen ;-)
Ist es; sagt er ja selbst. Damit hat er einen Sonnenstrahl
in mein von den 2007er Wolken verdunkeltes Gemüt geschickt.
Gruß aus Mainz
Michael