AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dblookupcombobox

Ein Thema von gridmachine · begonnen am 8. Sep 2003 · letzter Beitrag vom 8. Sep 2003
Antwort Antwort
gridmachine

Registriert seit: 3. Mär 2003
8 Beiträge
 
Delphi 5 Enterprise
 
#1

dblookupcombobox

  Alt 8. Sep 2003, 08:17
hi,
ich habe als listsource einer dblookupcombobox zwei verschiedene Spalten einer Tabelle mit Semikolon getrennt angegeben.

Dadurch werden diese beiden Spalten richtigerweise im Dropdownbereich der Lookupcombobox angezeigt.

Mein Problem ist folgendes:

Über die Zuweisung via 'Datafield' kann eins der Listsourcefelder übernommen werden.
Ich möchte jedoch beide ausgewählten Felder in mein Datafield eintragen lassen.
Ist dies auf einfache Art möglich?

gridmachine,
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#2

Re: dblookupcombobox

  Alt 8. Sep 2003, 11:39
Ich weiß gerade nicht, ob das so geht, was Du möchtest. Aber: eigentlich ist es auch gar nicht so gemeint. Der Kniff ist gerade, dass die Datenverbindung von der Anzeige in der ComboBox getrennt ist. Was in DataField gespeichert wird, ist der Wert in KeyField (was typischerweise der Primärschlüssel der Lookuptabelle ist), was in der Box angezeigt wird, ist das/sind die Feld/er in ListField.
Im Klartext: normalerweise hast Du ein Feld, das einen Fremdschlüssel enthält, der auf den Primärschlüssel einer zweiten Tabelle verweist. Meist ist das ein Integerwert. DataField wird auf das Fremdschlüsselfeld gesetzt, KeyField auf das Primärschlüsselfeld der Lookuptabelle, mit ListField gibst Du an, was der Benutzer sehen will.
Der Witz daran ist, dass in der Haupttabelle i.d.R. nur ein Integer gespeichert werden muss, der Benutzer aber eine aussagekräftige Info erhält.

Alles klar?

Grüße
Urs
  Mit Zitat antworten Zitat
gridmachine

Registriert seit: 3. Mär 2003
8 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: dblookupcombobox

  Alt 8. Sep 2003, 16:25
hi,

ich weiß, was eine DBLookupcombobox NORMALERWEISE macht.

Trotzdem Danke für Deine Hilfe.

Vielleicht habe ich das Problem nicht richtig formuliert.

Also angenommen :


1. TabelleX enthält mehrere Spalten Name,Vorname,Adresse,Telefon,email,....

2. TabelleY enthält eine Spalte z.B. Besitzter
(hier soll der Eintrag aus TabelleX [Name+Vorname] rein)

nun meine DBLookupcombobox:
dblookupcombobox.listsource = tabelleX >> Feld: Name
dblookupcombobox.datafield = tabelleY >> Feld:Besitzer

das geht soweit!
Name aus TabelleX wird in Besitzer TabelleY übernommen.


es soll jedoch der Vorname auch mit in das Feld Besitzer rein

also:
dblookupcombobox.listsource = tabelleX >> Feld: Name ; Vorname
dblookupcombobox.datafield = tabelleY >> Feld:Besitzer

Fazit: Name und Vorname werden im Dropdownbereich der Lookupcombobox zwar angezeigt, aber nur das erstere wird übernommen!

also hier poste ich mal meinen Lösungsweg :

1.
dblookupcombobox.listsource = tabelleX >> Feld: Name ; Vorname
dblookupcombobox.datafield = tabelleY >> Feld: Besitzer
2.
über das Eingabefeld der Lookupcombobox lege ich passgenau ein DbEditfeld

3.
im OnCloseUp Ereignis der DBLookupcombobox :

name :=dblookupcombobox.ListSource.DataSet.FieldByName( 'Name').asstring;
vname:=dblookupcombobox.ListSource.DataSet.FieldBy Name
('Vorname').asstring;
// hier zerre ich die Werte in gleichnamige Variablen

TabelleY.Dataset.Edit;
TabelleY.Dataset..fieldbyname('Besitzer').asstring :=name+' '+ vname;

So nun noch im DBEdit den Wert Datafield auf's TabelleY.Besitzer setzten und schon wird der Name + Vorname in einer optischen LookupCombobox angezeigt. (welch Teufelei!)

Puuhhhh, ich dachte das geht einfacher.


gridmachine,
  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 07:32 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