Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 05.10.06 13:49 
Habe Probleme mit der DBLookupComboBox.

Ich habe eine Tabelle „tblWartung“ und eine Tabelle „tblMaschine“.

Jetzt habe ich ein DBGrid, das mir am Anfang alle Datensätze der tblWartung anzeigt.

Jetzt möchte ich mit Hilfe einer DBLookupComboBox eine Maschine auswählen und es sollen dann nur noch die Daten zu dieser Maschine eingestellt werden.

Bei den Eigenschaften der DBLookupComboBox habe ich folgendes eingestellt:

ListSource = DataSourceMaschinen (ist die Tabelle tblMaschine)
ListField = Maschinenname (Feld aus der Tabelle tblMaschine)
KeyField = M_ID
DataSource = DataSourceWartung (ist die Tabelle tblWartung)
DataField = M_ID

Wenn ich jetzt aber eine andere Maschine in der DBLookupComboBox auswähle werden trotzdem alle Daten im Grid angezeigt.

Wie kann ich das machen??

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Fr 06.10.06 00:55 
Moin :-)
Wie wär es beispielsweise mit Filtern der tblWartung auf die entsprechende M_ID, welche durch die DB...Box 'eingestellt' wurde?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
begin
  tblWartung.Filter := 'M_ID='+QuotedStr(DBLookUpComboBox.KeyValue);
  tblWartung.Filtered := True;
end;

Ungetestet! Aber im Prtinzip müsste es so funzen! Wenn M_ID ein Integerwert ist, dann Filterbedingung natürlich entsprechend anpassen ;-) Im Beispiel bin ich mal von einem String ausgegangen...

Ach ja, nochwas: wenn die DB...Box eh 'nur' zum auswählen vorhandener Maschinen benutzt werden soll, dann ist das Setzen von DataSource und DataField nicht unbedingt zwingend... es sei denn, in der tblWartung soll ein neuer Datensatz angelegt werden; dann sind natürlich die beiden Eigenschaften zu setzen, damit auch eine vorhandene Maschine eingetragen werden kann...

Gruß

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt