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 3 von 7     123 45     Letzte »    
marabu

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 31. Jan 2006, 08:56
Hallo StoRmtec,

der Code in deinem ersten Beitrag hatte zwei vordergründige Mängel, die ich dir in den Beiträgen #2 und #4 bereits behoben habe. Grundsätzlich gehört dein Code nicht in einen event handler. Besser wären zwei Funktionen, exportiert aus einem Datenmodul. Die beiden SQL-Statements können jeweils einer permanenten Query zugewisen werden und müssen nicht jedes mal wieder übersetzt werden. Die Signatur der Funktionen sollte bereits interne Datentypen verwenden, damit die Funktionen frei von Konvertierungen bleiben können. Der Zugriff auf einen field value bei leerem result set bleibt fehlerfrei, wenn du meinen Hinweis aus Beitrag #4 beherzigst - NULL values werden bei Zugriff über die Konvertierungsmethoden eines Datenfeldes automatisch nach 0 bei numerischen Typen, empty string oder FALSE konvertiert.

Außerhalb dieser Datenbankfunktionalität gilt noch folgendes: Entweder du nimmst Benutzereingaben typsicher entgegen, indem du spezielle Controls wie TDateTimePicker verwendest, die notwendige Prüfungen selbst durchführen, oder du nimmst normale Edit-Felder und schreibst den Prüfcode selbst. Zum Zwecke der Anzeige werden numerische Werte eines Datenbankfeldes in Text umgewandelt, das ist völlig normal. Nicht normal ist es, diesen Text wieder in einen numerischen Wert zu konvertieren um ihn in einer Berechnung zu verwenden.

For what it's worth...

marabu
  Mit Zitat antworten Zitat
StoRmtec

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 31. Jan 2006, 12:56
Danke mkinzler es funktioniert jetzt so wie ich das möchte.

Habe jetzt noch den DateTimePicker eingebaut und mit dem geht es auch.

Mfg
StoRmtec
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 31. Jan 2006, 13:04
Zitat von StoRmtec:
Danke mkinzler es funktioniert jetzt so wie ich das möchte.
Freut mich.

Allerdings muß ich marabu rechtgeben mit seinem Einwand, das das Abfangen der Fehler durch Exceptionhandler ( try .. except ) nur die Symptome bekämpft anstatt die Ursachen.
Besser ist es natürlich vorher abzuprüfen, ob die zu konvertierenden Variablenwerte in den Zieltyp konvertierbar sind oder ob überhaupt ein Ergebnis vorliegt bzw. Variablen nicht leer( Null) sind.
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 09:54
Hallo

Wie kann ich den eine Abfrage abfangen wenn ich mit die Datensätze einer bestimmten ID anzeigen lassen will und dann das zusammenzählen lasse. Bekomme da immer eine Fehlermeldung wenn er zB. beim Verbrauch keine ID findet.

Bitte noch mal um Hilfe

Delphi-Quellcode:
procedure TForm2.Button17Click(Sender: TObject);
var gesamt1, kostenverbrauch, kostenwartung : extended;
begin
wartungq.Close;
wartungq.sql.clear;
wartungq.SQL.text := 'select sum(tonerkostengesamt) as Gesamtsumme from verbrauch where druckernameid='''+dbedit1.text+'''';
wartungq.open;
gesverbrauch.text := wartungq.FieldByName('Gesamtsumme').Value;
verbrauchq.Close;
verbrauchq.sql.clear;
verbrauchq.SQL.text := 'select sum(kosten) as Gesamtkosten from wartung where druckernameid='''+dbedit1.text+'''';
verbrauchq.open;
geswartung.Text := verbrauchq.FieldByName('Gesamtkosten').Value;
kostenwartung := strtofloat(geswartung.Text);
kostenverbrauch := strtofloat(gesverbrauch.Text);
gesamt1 := kostenwartung + kostenverbrauch;
gesamt.Text := floattostr(gesamt1) +'';
end;
Danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 10:04
Z.B so:
Delphi-Quellcode:
if wartungq.RecordCount > 0 then
    kostenwartung := strtofloat(geswartung.Text)
else
    kostenwartung := 0;
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 12:54
jetzt bekomme ich den Fehler
Miniaturansicht angehängter Grafiken
fehler2_162.jpg  
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 13:10
1.) Hast du die selbe Änderung für den Verbrauch durchgeführt?
2.) Was für ein Wert gibt er für RecordCount aus?
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 13:24
1.) Ja habe ich gemacht
2.) wie meinst was er mir da ausgibt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 13:30
Setze mal einen Haltepunkt an der Zeile, ind der RecordCount verwendet wird und schau dir mal den Wert an. Wenn die Datenbank kein Ergebnis liefert sollte RecordCount eigentlich 0 sein.
Markus Kinzler
  Mit Zitat antworten Zitat
StoRmtec

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

Re: Abfrage aus 2 Tabellen in Access funktioniert nicht

  Alt 1. Feb 2006, 14:18
Hallo
Wie finde ich das heraus bzw wie setze ich so einen Haltepunkt
danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 7     123 45     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 03:36 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