Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: [Access] Tabelle hat Beziehung mit sich selbst

  Alt 30. Nov 2011, 08:15
Man könnte eine Routine schreiben, die die Mannschaften ermittelt und in einem TStrings-Objekt ablegt:
Delphi-Quellcode:
procedure TDeinForm.ListTeams(OutList: TStrings; ExcludeID: integer = 0);
begin
  Assert(Assigned(OutList));
  OutList.BeginUpdate;
  try
    OutList.Clear;
    Query.SQL.Text := 'SELECT ID, Name FROM Mannschaften WHERE ID <> :id ORDER BY Name';
    Query.ParamByName('ID').Value := ExcludeID;
    Query.Open;
    while not Query.EOF do
      begin
        OutList.AddObject(Query.FieldByName('Name').AsString,
          TObject(Query.FieldByName('ID').AsInteger));
        Query.Next;
      end;
    Query.Close;
  finally
    OutList.EndUpdate;
  end;
end;
Damit könnte man dann 2 Standard-ComboBoxen befüllen:
Delphi-Quellcode:
ListTeams(cbbHeim.Items);
ListTeams(cbbGast.Items);
Um zu vermeiden, dass dieselbe Mannschaft als Heim- und Gastmannschaft zugewiesen werden kann, filtert man diese heraus, sobald eine Heimmannschaft ausgewählt wurde:
ListTeams(cbbGast.Items, integer(cbbHeim.Items.Objects[cbbHeim.ItemIndex])); Alles getippt und nicht getestet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat