Delphi-PRAXiS
Seite 2 von 3     12 3      

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 23:44

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
onchange gibt es aber bei dblookup combos nicht, deshalb habe ich ja das closeup genommen. Meinst du das das deshalb nicht geht?? oder stimmt vielleicht was anderes nicht??


The_Tremendous

kiar 3. Jan 2005 23:50

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
versuche mal das onexit

kiar 3. Jan 2005 23:54

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
closeup sollte abe rauch funktionieren :gruebel:

setze mal haltepunkte auf
Delphi-Quellcode:
With Query1 Do
und gehe mal mit der maus über KZ ,was steht jetzt da drin?

raik

The_Tremendous 3. Jan 2005 23:54

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Er gibt jetzt zwar keinen Fehler aus, aber das EditFeld ist trotzdem noch leer. Also hat er noch nichts ausgewählt.


Gruß, The_Tremendous

*jetz ins Bettgehend und hoffend, das er morgen erfolgreicher ist :-)*

Albi 4. Jan 2005 09:51

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

Nutzt die Funktionen der DBLookUpComboBox? Diese DBLCBox ist ja eigentlich dazu gedacht eine 1:1 Beziehung zwischen 2 DB dazustellen. Z.Bsp. läßt man sich der Box Namen anzeigen und in einer DBGrid die dazugehörigen Daten aus einer anderen DB.

Du könntest die Box in ihrer vollen Funktionalität in deinem Fall nutzen (mir ist das aber zu kompliziert).

Ich würde die DBLookupCombobox durch eine normale DBCombobox ersetzen, da hast du dann auch ein OnChange.

Dann verknüpft Du die Datasource mit der Datasource für die DB Fahrzeuge. Nun sollten die Fahrzeuge in die DBCBox eingetragen werden. (Das kannst Du schon mal testen, wenn Du das Query auf Open True setzt)

Wenn Du jetzt ein Fahrzeug in DBCBox auswählst, wird automatisch der Datensatzzeiger auf den entsprechenden Datensatz in deiner Abfrage gesetzt. Was du setzt nur noch machen must, ist das Feld Kennzeichen aus dem Ergebnis auslesen und die 2te Abfrage übergeben und da kommt der oben beschrieben Code ins Spiel und dann sollte es eigentlich gehen.

The_Tremendous 4. Jan 2005 11:13

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Also ich habe jetzt die DBCombo mit der datasource2 verbunden. Die Datasource2 ist mit der Tabelle Fahrzeuge verknüpft.

Jetzt zeigt er in der Combo aber nur das erste Fahrzeug an und ich kann kein anderes auswählen.

Was stimmt da nicht???


The_Tremendous

Boombuler 4. Jan 2005 12:24

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

Weil du das mit deiner 2. datasource verbunden hast (steht leider immer auf dem ersten datensatz... (zumindest wenn ich mir gerad den aufbau deiner form richitg vorstelle)

Greetz
Boombuler

Albi 4. Jan 2005 12:26

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

ich habe das ganze mal durchgespielt. Ich habe mir allerdings ne normal CBox genommen. Dann habe ich mit dem Code

Code:
With Query1 Do
Begin
   Close;
   SQL.Clear;
   SQL.ADD('Select * From Fahrzeuge');
   SQL.Open;
   //CBox füllen
   While Not EOF Do
   Begin
      CBox.Items.add('FieldByName('Kennzeichen').asString;
      Next;
   end;
end;
im OnCreate Ereignis die Kennzeichen in die CBox geschrieben.

Zur Auswertung der CBox dann im OnChange-Ereignis den folgenden Code eintragen

Code:
var KZ: String;
begin
  KZ:= ComboBox1.Text;
  With Query2 DO
  Begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From Fahrtenbuch.db WHERE Kennzeichen Like "'+KZ+'"');
    Open;
  end;
  edit1.Text:= Query2.FieldByName('Startkilometer').AsString; //Hier wird der Wert eingetragen
  ShowMessage(Query2.SQL.Text); //Nur zu Testzwecken um den Inhalt der Abfrage zu testen
end;
Bei mir hat es so einwandfrei funktioniert.

Ich hoffe das hilft Dir jetzt weiter.

The_Tremendous 4. Jan 2005 13:02

Re: den aktuellen Datensatz auswählen, und ins edit einfügen
 
Also erstmal viele Dank.

Aber:

der erste Fehler kommt bei
SQL.Open --> das Open kennt er net

der zweite Fehler liegt hier irgendwo
comboFahrzeugAuswahl.Items.add('FieldByName'('Kennzeichen').asString;

[Fehler] UFahrtenbuchEingabe.pas(72): Operator oder Semikolon fehlt
[Fehler] UFahrtenbuchEingabe.pas(72): Record, Objekt oder Klassentyp erforderlich

Das waren die Fehler. Was Ist jetzt Falsch??

Ich habe das Query1 an dei Tabelle Fahrzeuge geknüpft und das Quer2 2 an die Tabelle Fahrtenbuch. Ist das richtig so??


The_Tremendous

Albi 4. Jan 2005 13:20

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

ich habe die TQuery Kompos aus der Sparte BDE verwendet.

zu 1., mein Fehler ohne SQL selbsverständlich

zu 2.

Zitat:

Zitat von The_Tremendous
der zweite Fehler liegt hier irgendwo
comboFahrzeugAuswahl.Items.add('FieldByName'('Kenn zeichen').asString;

es sollte so aussehen

Code:
comboFahrzeugAuswahl.Items.add(FieldByName('Kennzeichen').asString);
Das sind typische Copy & Paste Fehler.

So und nun versuch es nochmal.

Kannst Du das alles nachvollziehen was ich da überhaupt geschrieben habe oder nimmst Du das alles so hin?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz