AGB  ·  Datenschutz  ·  Impressum  







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

DBLookupComboBox bei neuer Dateneingabe

Ein Thema von Salomon · begonnen am 8. Mär 2007 · letzter Beitrag vom 9. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#1

DBLookupComboBox bei neuer Dateneingabe

  Alt 8. Mär 2007, 14:07
Datenbank: MS SQL Server Express • Zugriff über: ADO
Hallo,
ich möchte das der Benutzer in einer Eingabemaske in einem Dropdownfeld Werte auswählen kann und zwar alle Werte eines Feldes einer anderen Tabelle als die in die die eingegebenen Formulardaten aufgenommen werden sollen.


TBPerson
------------
Name
...
FK_AnredeID (FK)

TBAnrede
--------------
AnredeID (PK)
Anrede

In dem Beispiel möchte ich z.B. in die Tabelle TbPersonen die passende FK_AnredeID für z.B. "Herr" aufnehmen. Wie bekomme ich es hin das in der DBLookupComboBox alle Anreden aus der TBAnrede Tabelle stehen, in TBPerson jedoch die FK_AnredeID richtig geschrieben wird. Das ganze bei einem neu hinzugefügten Datensatz mittels append.

Ich weiß das es hier im Forum viele ähnliche Fragen gibt, leider bekomme ich es trotzdem nicht hin

Gruß
Marcus
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
marabu

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

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 8. Mär 2007, 16:55
Hallo Marcus,

nehmen wir an, du hättest zwei Datenbank-Tabellen Personen (ID, ANR_ID, ...) und Anreden (ID, TEXT). Setzen wir weiter zwei ADOTable-Komponenten PersonenTable und AnredenTable und mit diesen verbundene DataSource-Komponenten PersonenSource und AnredenSource voraus.

Um einen Personeneintrag zu bearbeiten setzt du die Eigenschaft DataSource aller datensensitiven Komponenten auf PersonenSource und die Eigenschaft DataField nach Wunsch. Bei der DBLookupComboBox setzt du zusätzlich die Eigenschaft ListSource auf AnredenSource, die Eigenschaft ListField benennt das anzuzeigende Feld (TEXT) und die Eigenschaft KeyField benennt das verknüpfende Schlüsselfeld (ID).

Wie du die ComboBox in ein DataGrid integrieren kannst erfährst du hier: klick

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#3

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 09:00
Hi marabu,
danke für die super Erklärung Mittlerweile habe ich das alles so eingestellt. Leider werden in der DBLookupComboBox immer noch keine Werte angezeigt... Irgendetwas scheint da immer noch nicht zu passen. Hast du noch eine Idee woran das liegen könnte?

Wenn ich DBEdits mit den beiden Datasource Komponenten der Tables verbinde werden Daten angezeigt.

Gruß
Marcus
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 09:05
Zeig mal deine Einstellungen.
Ist Quelldataset aktiv?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#5

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 09:19
Guten morgen mkinzler,
als Quelldataset meinst du die ADOTabel Komponente?

Ich habe jetzt bei beiden Table Komponenten Active auf true gesetzt. Dann scheint es zu funktionieren Zumindest zeigen die Comboboxen die richtigen werte.

Ich habe die DBKomponenten in einem Datenmodul. Sollte ich dort bei allen Komponenten "Active" auf true setzen?
Geöffnet habe ich die Datensätze immer mit dem Open Befehl, ohne vorher active auf true zu setzen...
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 09:25
Das DataSet auf welches die ListSource zeigt muß natürlich geöffnet sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#7

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 09:43
Ja, ziemlich dumm von mir mit einer geschlossenen Datenmenge zu arbeiten... Naja, bin halt Anfänger. Wird aber schon besser

Kann ich ein KeyField vorgeben das standardmäßig angezeigt werden soll?
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
marabu

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

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 12:55
Angezeigt werden die Felder, welche du bei ListField einträgst. Über KeyField wird nur die Schlüsselbeziehung realisiert (Anreden.ID <-> Personen.ANR_ID).

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#9

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 13:07
Ähm, ich habe mich etwas undeutlich ausgedrückt. Ich meine das in der Combobox schon ein Wert drin steht. z.B. Datensatz Nummer x.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
marabu

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

Re: DBLookupComboBox bei neuer Dateneingabe

  Alt 9. Mär 2007, 13:27
Aber die Anzeige geschieht doch automatisch, sobald du die Komponente richtig konfiguriert hast. Oder meinst du beim Neuanlegen eines Datensatzes? Da musst du den gewünschten Anzeigewert im OnNewRecord-Ereignis der Personen-Tabelle vorgeben, indem du den richtigen Schlüsselwert in das entsprechende Feld einträgst.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:10 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