![]() |
Datenbank: Access • Zugriff über: ADO
Abfrage aus 2 Tabellen in Access funktioniert nicht
Hallo Leute
Hätte eine Hilfe gebraucht. Und zwar habe ich eine Datenbank mit 2 Tabellen. Druckerwartung | Druckerverbrauch jetzt möchte ich eine Abfrage machen das er mir die ganzen Kosten zusammenzählt, das funktioniert auch aber wenn ich jetzt machen möchte das er mir nur einen gewissen Datumsbereich ermitteln soll dann bekomme ich eine Fehlermeldung. Weiß auch schon warum. Und zwar wenn zB. bei Druckerwartung in den Zeitraum kein Datum eingetragen ist dann bekomme ich die Fehlermeldung. Das ist mein Code:
Delphi-Quellcode:
Wie kann ich das machen wenn da kein Datum eingetragen ist das er mir trotzdem den anderen Wert ausgibt.
procedure TForm2.gesamtbuttonClick(Sender: TObject);
var gesamtall1, kostenverbrauchall1, kostenwartungall1 : extended; begin wartungall.Close; wartungall.sql.clear; wartungall.SQL.text := 'select sum(tonerkostengesamt) as Gesamtsumme from verbrauch where datumv between :von and :bis'; wartungall.Parameters.ParamByName('von').Value := StrToDate(edit1.Text); wartungall.Parameters.ParamByName('bis').Value := StrToDate(edit2.Text); wartungall.open; gesverbrauchall.text := wartungall.FieldByName('Gesamtsumme').Value; verbrauchall.Close; verbrauchall.sql.clear; verbrauchall.SQL.text := 'select sum(kosten) as Gesamtkosten from wartung where datum between :von and :bis'; verbrauchall.Parameters.ParamByName('von').Value := StrToDate(edit1.Text); verbrauchall.Parameters.ParamByName('bis').Value := StrToDate(edit2.Text); verbrauchall.open; geswartungall.Text := verbrauchall.FieldByName('Gesamtkosten').Value; kostenwartungall1 := strtofloat(geswartungall.Text); kostenverbrauchall1 := strtofloat(gesverbrauchall.Text); gesamtall1 := kostenwartungall1 + kostenverbrauchall1; gesall.Text := floattostr(gesamtall1); end; MFG StoRmtec |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Hi,
du könntest die Bedingung erweitern:
SQL-Code:
Grüße vom marabu
... where datumv is not null and datumv between :von and :bis ...
|
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Antwort
aber bekomme trotzdem immer diese Fehlermeldung siehe Anhang. mfg StoRmtec |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Die Fehlermeldung hat nichts mit dem SQL-Statement zu tun. In welcher Code-Zeile tritt denn der Fehler auf? Ich sehe zwei Kandidaten:
Delphi-Quellcode:
marabu
procedure TForm2.gesamtbuttonClick(Sender: TObject);
// ... // gesverbrauchall.text := wartungall.FieldByName('Gesamtsumme').Value; gesverbrauchall.text := Format('%.0n', [1.0 * wartungall.FieldByName('Gesamtsumme').AsInteger]); // ... // geswartungall.Text := verbrauchall.FieldByName('Gesamtkosten').Value; geswartungall.Text := Format('%.2m', [verbrauchall.FieldByName('Gesamtkosten').AsFloat]); //... end; |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Ist der Datumswert leer (NULL) dann schlägt die Typkonvertierung natürlich fehl -> Vorher auf NULL abprüfen.
|
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
@mkinzler
Ja da steht nicht drinnen. Das Datumsfeld ist leer. bei der Wartungstabelle bei der andere ist was drinnen. Wie kann ich den so was abfangen. Hast du eine Hilfe für mich. danke mfg StoRmtec |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Beispiel für eine Konvertierung
Delphi-Quellcode:
try
geswartungall.Text := verbrauchall.FieldByName('Gesamtkosten').Value; except geswartungall.Text :=''; end; |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
bekomme aber trotzdem noch den Fehler wenn ich das einfüge.
Wie gesagt in der einen Tabelle ist kein Datum zu diesem Zeitpunkt eingetragen und in der anderen schon. mfg StoRmtec |
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
Zitat:
Delphi-Quellcode:
Selbiges für 'bis' Parameter
if Trim(edit1.Text) <> '' then
wartungall.Parameters.ParamByName('von').Value := StrToDate(edit1.Text) else wartungall.Parameters.ParamByName('von').Value := NULL; Zitat:
|
Re: Abfrage aus 2 Tabellen in Access funktioniert nicht
nein die erweiterung von marabu habe ich nicht eingebaut.
Und mit deinem komme ich auch nicht weiter bekomme trotzdem immer wieder die Fehlermeldung. MFG StoRmtec |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz