Lady1201 Geschrieben 2. Oktober 2002 Geschrieben 2. Oktober 2002 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 Zitieren
Ganymed Geschrieben 2. Oktober 2002 Geschrieben 2. Oktober 2002 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? Zitieren
Klotzkopp Geschrieben 2. Oktober 2002 Geschrieben 2. Oktober 2002 Wenn die Bedingung wahr ist, wirken sich der IF- und der ELSE-Zweig ohnehin gleich aus, oder sehe ich das falsch? Zitieren
Lady1201 Geschrieben 2. Oktober 2002 Autor Geschrieben 2. Oktober 2002 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 Zitieren
g_nikolai Geschrieben 3. Oktober 2002 Geschrieben 3. Oktober 2002 dann versuch mal: if isnull(rsDSumme!Summe) = True then else endif Vieilleicht hilft das besser Zitieren
begbie Geschrieben 3. Oktober 2002 Geschrieben 3. Oktober 2002 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 Zitieren
Lady1201 Geschrieben 7. Oktober 2002 Autor Geschrieben 7. Oktober 2002 Noch mal danke an euch alle! Jetzt funktioniert es endlich. g_nikolai's Tipp hat geholfen! Gruß Lady Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.