Veröffentlicht 2. Oktober 200222 j Hallo! Mein Problem ist folgendes: Ich möchte eine Summe von ausgewählten Daten berechnen lassen, diese anschließend ausgeben. Bei der Abfrage, ob der Ausdruck rsDSumme.Fields("Summe") = Null ist wird aber immer nur der Else-Teil abgearbeitet. Der Teil des Codes, in der die Abfrage erfolgt (VB): Set rsDSumme = db.OpenRecordset(strSQLDSumme, dbOpenSnapshot) If rsDSumme.Fields("Summe") = Null Then dbSumme = 0 dbTage = 0 Else dbSumme = rsDSumme.Fields("Summe") dbTage = dbSumme / 8 End If Meine Frage: Wieso wird immer nur der Else-Teil abgearbeitet, auch wenn rsDSumme.Fields("Summe") = Null ???? Gruss Lady
2. Oktober 200222 j Also wenn ich wissen möchte ob was im Recorset steht dann frage ich es so ab: Recordset.RecordCount <> 0 Weil wenn bei deiner Abfrage ja nix drinne steht, dann muss es ja auch nicht abgearbeitet werden, oder?
2. Oktober 200222 j Wenn die Bedingung wahr ist, wirken sich der IF- und der ELSE-Zweig ohnehin gleich aus, oder sehe ich das falsch?
2. Oktober 200222 j Um so länger ich drüber nachdenke ... könntest du Recht haben. Brauche aber irgendeine Abfrage, von wegen "wenn rsDSumme.Fields("Summe") = Null" oder auch "wenn rsDSumme.RecordCount <> 0" (funktioniert auch nicht) dann ... Denn ich bekomme jedesmal, wenn ich den letzten Datensatz für einen Benutzer gelöscht habe, aber die Summe seiner aufgewendeten Stunden aktualisieren möchte folgende Fehlermeldung: "Laufzeitfehler 94: Ungültige Verwendung von Null" Die aktuelle Summe muss aber ausgegeben werden, auch wenn sie 0 ist. Gruss Lady
3. Oktober 200222 j dann versuch mal: if isnull(rsDSumme!Summe) = True then else endif Vieilleicht hilft das besser
3. Oktober 200222 j kannst dir ja auch mal rsDSumme.Fields("Summe") ausgeben lassen. bekommst du da wirklich Null zurück wenn es Null ist? oder bekommst du vielleicht vbNull zurück oder "" oder sonst was. das würde erklären wieso immer der else zweig eingeschlagen wird und nochwas: zum abfragen ob ein recordset gefüllt immer besser so: if not (rsDSumme.BOF AND rsDSumme.EOF) then . . . end if
7. Oktober 200222 j Noch mal danke an euch alle! Jetzt funktioniert es endlich. g_nikolai's Tipp hat geholfen! Gruß Lady
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.