AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit DBLookupComboBox
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit DBLookupComboBox

Ein Thema von SvenT · begonnen am 4. Okt 2003 · letzter Beitrag vom 4. Okt 2003
Antwort Antwort
SvenT

Registriert seit: 6. Aug 2003
50 Beiträge
 
Delphi 5 Enterprise
 
#1

Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:01
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
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:18
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
SvenT

Registriert seit: 6. Aug 2003
50 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:26
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???
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:32
Zitat von SvenT:
Hi Sharky!

Danke für Deine schnelle Antwort. Dann habe ich wohl die falsche Komponente gewählt. Aber welche Komponete muss ich dann verwenden, damit der Benutzer aus einer Liste einen Datensatz auswählen kann.
Hai SventT,

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:
 DBLoolUpCombobBox.ListSource := DataSource1
 DBLoolUpCombobBox.ListField := 'Name';
 DBLoolUpCombobBox.KeyField := 'Adress_id';
Jetzt solltest du schon aus deiner Tabelle etwas auswählen können.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
SvenT

Registriert seit: 6. Aug 2003
50 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:45
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 11:50
Zitat von SvenT:
..... Dazu müßte ich unter DataSource und DataField ja die selbe Tabelle bzw. Spalte auswählen wie bei ListSource und ListField. ....
Das geht auch nicht. DataField brauchst Du wenn Du deiner Tabelle etwas aus einer anderen Tabelle zuweisen möchtest!

Versuche doch mal das: (ungetestet)

Delphi-Quellcode:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
 DBLookupComboBox1.KeyValue := DataSet.FieldByName (DBLookupComboBox1.KeyField).AsVariant;
end;
Dadurch setzt Du DBLookupCombobox immer auf den aktuelle eintrag deiner Tabelle.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
SvenT

Registriert seit: 6. Aug 2003
50 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Problem mit DBLookupComboBox

  Alt 4. Okt 2003, 12:07
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:50 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