![]() |
Problem mit DBLookupComboBox
Hi!
Ich greife mit ADO auf eine Access DB zu. Nun möchte ich es mit einer DBLookupComboBox dem Benutzer ermöglichen, einen Datensatz aus der Liste auszuwählen. Allerdings sind die DataFields und ListFields der DBLookupComboBox aus der selben Spalte aus einer Tabelle und es erscheint dann die Fehlermeldung "Zirkuläre Daatenverbindungen sind nicht erlaubt!". Wenn ich nur das ListField einstelle, kann man zwar aus der Liste einen Datensatz auswählen, allerdings wird der aktuelle Datensatz bei einem Wechsel des Datensatzes nicht angezeigt. Der DBLookupComboBox kann ich auch den aktuellen Datensatz nicht zuweisen, denn "Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden". Hat jemand eine Lösung für mein Problem oder kennt jemand eine Komponente, mit der ich mein Problem beheben könnte. Vielen Dank im Vorraus. Gruß SvenT |
Re: Problem mit DBLookupComboBox
Hai SvenT,
grundsätzlich ist eine DBLookupComboBox nicht dafür gedacht in einer Tabelle zu navigieren. Aber gehen tut es trotzdem. Schreibe doch mal genau was du machen möchtest. Der eigentliche Einsatz ist es um einem Feld der Tabelle-A den Wert aus einem Feld der Tabelle-B zuweisen zukönnen. |
Re: Problem mit DBLookupComboBox
Hi Sharky!
Danke für Deine schnelle Antwort. Dann habe ich wohl die falsche Komponente gewählt. Ich möchte das der aktuelle Datensatz in einem Feld angezeigt wird und der Benutzer in diesem Feld aus einer Liste einen Datensatz auswählen kann. Welche Komponente kann das??? |
Re: Problem mit DBLookupComboBox
Zitat:
es geht schon. Hier mal ein Beispiel: -Tablenname -> Adressen -Felder - Adress_id,Name,Vorname Jetzt hast Du in deiner Anwendung 1 x TADOConnection 1 x TDataSource; 1 x TADOQuery oder TADOTable 1 x TDBLookupComboBox Deine TADOConnection verbindest Du mit deiner Datenbank. TADOQuery verbindest Du mit deiner Tabelle und TDataSource mit deiner TADOQuery. Das wirst Du ja schon haben?! Deiner TDBLookupComboBox musst Du jetzt die richtigen Daten zuweisen:
Code:
Jetzt solltest du schon aus deiner Tabelle etwas auswählen können.
DBLoolUpCombobBox.ListSource := DataSource1
DBLoolUpCombobBox.ListField := 'Name'; DBLoolUpCombobBox.KeyField := 'Adress_id'; |
Re: Problem mit DBLookupComboBox
Hi Sharky!
Danke für Deine Hilfe. So wie Du das Beschrieben hast, habe ich es bereits. Ich kann also aus der Liste einen Datensatz auswählen. Allerdings wird nicht der aktuelle Datensatz angezeigt. Dazu müßte ich unter DataSource und DataField ja die selbe Tabelle bzw. Spalte auswählen wie bei ListSource und ListField. Wenn ich dies tue, kommt die Fehlermeldung "Zirkuläre Datenverbindungen sind nicht erlaubt". Kann ich das irgendwie anders lösen? |
Re: Problem mit DBLookupComboBox
Zitat:
Versuche doch mal das: (ungetestet)
Delphi-Quellcode:
Dadurch setzt Du DBLookupCombobox immer auf den aktuelle eintrag deiner Tabelle.
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin DBLookupComboBox1.KeyValue := DataSet.FieldByName (DBLookupComboBox1.KeyField).AsVariant; end; |
Re: Problem mit DBLookupComboBox
Ich habe meine DBLookupComboBox jetzt auf den aktuellen Datensatz gesetzt. Es wird dann auch der aktuelle Datensatz angezeigt. Nun kann ich aber aus der Liste keinen Datensatz mehr auswählen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz