Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi den aktuellen Datensatz auswählen, und ins edit einfügen?? (https://www.delphipraxis.net/37254-den-aktuellen-datensatz-auswaehlen-und-ins-edit-einfuegen.html)

The_Tremendous 3. Jan 2005 13:17


den aktuellen Datensatz auswählen, und ins edit einfügen??
 
Hi


Habe folgendes Problem.


Ich habe 2 Paradox tabellen:

Fahrzeuge (Fahrgestellnummer, Kennzeichen, ..., Anfangskilometer,...)

Fahrtenbuch(Datum, Kennzeichen, ..., Startkilometer, Endklilometer, ...)


In der Tabelle Fahrtenbuch werden alle Fahrten aller Fahrzeuge gespeichert !!

Das aktuelle Fahrzeug wird mit einer DBLookupCombo ausgewählt. Nun möchte ich die Startkilometer des Fahrzeuges automatisch in ein EditFeld einfügen.

Startkilometer ist bei Leerer Tabelle Fahrtenbuch = die Anfangskilometer des Fahrzeuges aus der Tabelle Fahrzeuge, oder

wenn ein Datensatz in der Tabelle Fahrtenbuch Vorhanden ist die letzten Endkilometer des Ausgewählten Fahrzeuges.


Wie kann ich das Programmieren??? Wäre gut, wenn ihr mir helfen könntet, hab halt noch keine Ahnung vom Programmieren.


The_Tremendous

Albi 3. Jan 2005 13:41

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Hallo,

sind die unterstrichenden Felder deine Primärfelder? Wenn ja dann solltest Du das in der Fahrtenbuch DB ändern, da daran kein Datensatz eindeutig identifiert werden kann.

So nun zu deiner Frage. Wenn Du mit Query arbeitest könnstest Du das darüber lösen und da du ja eh schon mit einer DBLookUpCombo arbeitest kannst Du die Verbindung zu der Fahrtenbuch DB nutzen und dir darüber das Edit füllen lassen.

Ich würde die DBLookUpCombobox durch eine normale DBComboBox ersetzen. Dann verbindest Du diese mit der Table Fahrzeuge.

Wenn Du dann eine Fahrzeug in der ComboBox auswählst, führst Du im OnChange-Ereignis eine Abfrage aus, die aus der Fahrtenbuch DB den entsprechenden Startkilometer ausliest.

SQL-Code:
Select Startkilometer From Fahrtenbuch WHERE ID = :iID
ParamByName('iID).value:= //hier kommt dann die Verbindung zur Fahrzeug DB hin (ID o.s.)
ExecSQL;
Ich kann jetzt nicht erkennen ob du eine Verbindung zur Fahrtenbuch DB hast. Ich meine ein Feld wie Fahrzeug_ID. Dies wäre die ID des Fahrzeuges.

The_Tremendous 3. Jan 2005 18:12

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
hm, also die Tabellen sind eigentlich über das Kennzeichen verbunden.


Wie soll ich das verstehn?? also dieses ID =: iID

Zitat:

Select Startkilometer From Fahrtenbuch WHERE ID = :iID
ParamByName('iID).value:= //hier kommt dann die Verbindung zur Fahrzeug DB hin (ID o.s.)
ExecSQL;

The Tremenodus

Albi 3. Jan 2005 18:25

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Hallo,

was ich damit sagte wollte, du wählst ein Fahrzeug in der DBComboBox aus. In dem OnChange Ereignis führst Du den Code aus. Anstatt der ID wählst Du dann halt das Kennzeichen.

Wenn du den Code ausgeführt hast, dann steht in dem Ergebnis der entsprechende DS und somit auch der Startkilometerstand.

Um den dann noch in das Edit zu schreiben, must du nur das entsprechende Feld auslesen.

SQL-Code:
//das OnChange Ereignis
Kz: String;

Kz:= Query1.FieldByName('Kennzeichen').asstring //kennzeichen von dem Fahrzeug aus CBox
With Query1 Do
Begin
  close;
  SQL.clear;
  SQL.ADD('Select Startkilometer From Fahrtenbuch WHERE Kennzeichen LIKE '+KZ+'');
  Open;
end;

Edit.Text:= Query1.FieldByName('StartKilometer').AsString;

The_Tremendous 3. Jan 2005 22:19

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Das habe ich soweit jetz auch gemacht.

Wenn ich aber dann nen Datensatz in der Combo auswähle wird gesagt, das Feld Kennzeichen wurde nicht gefunden.

ich habe das query über ne datasource mit der Tabelle Fahrzeuge verbunden. Und In dieser Tabelle ist das Feld Kennzeichen definitiv drinne.


Was habe ich Falsch gemacht??


The-Tremendous

kiar 3. Jan 2005 22:22

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
hallo,

wie heisst denn dein feld, wo das kennzeichen drin steht?

raik

The_Tremendous 3. Jan 2005 22:24

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Das Tabellenfeld in dem die Iennzeichen drin stehn heist Kennzeichen.

Gruß The_Tremendous

kiar 3. Jan 2005 22:28

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
der code geht aber davon aus , das das feld in der tablle Fahrten buch steht

raik

The_Tremendous 3. Jan 2005 22:38

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Also ich habe die 2 Paradox Tabellen:


Fahrzeuge (Fahrgestellnummer, Kennzeichen, Anfangskilometer, ...)

Fahrtenbuch (FahrtenbuchNr, Datum, Kennzeichen, Startkilometer, Endkilometer,...)



Somit steht in jeder der beiden Tabellen das Feld Kennzeichen. Über dieses Kennzeichen sollen alle Fahrten eines Autos im Fahrtenbuch mit der Tabelle Fahrzeuge verknüpft werden.


Ich will nun die Startkilometer des Autos x beim eintragen einer Fahrt in das Fahrtenbuch automatisch ins feld editStartKilomter eingeben.

Dabei muss ich beachten, ob in der Tabelle Fahrtenbuch schon eine Fahrt vom Auto x steht oder nicht. Wenn noch keine Fahrt vom Autox in der Tabelle Fahrtenbuch steht, dann soll der wert Anfangskilometer aus der Tabelle Fahrzeuge übernommen werden.
Sollte in der Tabelle Fahrtenbuch schon Einträge des Austos x stehten, dann soll der davon letzte ausgewählt werden, und der wert des Feldes Endkilometer in das Editfeld eingetragen werden.


Das Auto wird wie oben schon erwähnt mit einer Lookupcombo ausgewählt.

Den Quellcode des Querys habe ich dann unter combolookupcloseup geschrieben, hoffe mal das das so richtig ist.


Gruß The_Tremendous

kiar 3. Jan 2005 22:41

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
ins onchange, wie oben beschrieben.

versuche es mal

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.
Seite 1 von 3  1 23      

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