AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrage aus 2 Tabellen in Access funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage aus 2 Tabellen in Access funktioniert nicht

Ein Thema von StoRmtec · begonnen am 30. Jan 2006 · letzter Beitrag vom 3. Feb 2006
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#1

Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:03
Datenbank: Access • Zugriff über: ADO
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:
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;
Wie kann ich das machen wenn da kein Datum eingetragen ist das er mir trotzdem den anderen Wert ausgibt.

MFG
StoRmtec
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:06
Hi,

du könntest die Bedingung erweitern:

... where datumv is not null and datumv between :von and :bis ... Grüße vom marabu
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#3

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:12
Danke für die Antwort
aber bekomme trotzdem immer diese Fehlermeldung siehe Anhang.

mfg
StoRmtec
Miniaturansicht angehängter Grafiken
fehler_181.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:29
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:
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;
marabu
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:29
Ist der Datumswert leer (NULL) dann schlägt die Typkonvertierung natürlich fehl -> Vorher auf NULL abprüfen.
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#6

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:40
@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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:45
Beispiel für eine Konvertierung

Delphi-Quellcode:
try
 geswartungall.Text := verbrauchall.FieldByName('Gesamtkosten').Value;
except
 geswartungall.Text :='';
end;
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#8

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:51
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 10:58
Zitat von StoRmtec:
bekomme aber trotzdem noch den Fehler wenn ich das einfüge.
Hast du die anderen Konvertierungsoperationen genauso durch Exceptionhandler gesichert?
Delphi-Quellcode:
if Trim(edit1.Text) <> 'then
    wartungall.Parameters.ParamByName('von').Value := StrToDate(edit1.Text)
else
    wartungall.Parameters.ParamByName('von').Value := NULL;
Selbiges für 'bis' Parameter
Zitat:
Wie gesagt in der einen Tabelle ist kein Datum zu diesem Zeitpunkt eingetragen
und in der anderen schon.
hat du die Erweiterung von marabu eingebaut?
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#10

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 30. Jan 2006, 11:37
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz