1

私が取り組んでいるプログラムでは、if ステートメントを使用して、別のコンボ ボックスの内容を表す行を SQL に追加しています。

procedure TFmNewGarage.ComboBoxCountryEnter(Sender: TObject);
begin
  ADOQueryCountry.SQL.Clear;
  ADOQueryCountry.SQL.Add('SELECT DISTINCT Country');
  ADOQueryCountry.SQL.Add(' FROM TblBaseCar');
  ADOQueryCountry.Open;
  while not ADOQueryCountry.Eof do
  begin
  ComboBoxCountry.Items.Add(ADOQueryCountry['Country']);
  ADOQueryCountry.Next;
  end;
end;

procedure TFmNewGarage.ComboBoxCountryChange(Sender: TObject);
begin
  SelA:=True;
  ComboBoxManufacturer.Show;
  ComboBoxCountry.Hide;
end;

procedure TFmNewGarage.ComboBoxManufacturerEnter(Sender: TObject);
begin
  ADOQueryManufacturer.SQL.Clear;
  ADOQueryManufacturer.SQL.Add('SELECT DISTINCT Manufacturer');
  ADOQueryManufacturer.SQL.Add(' FROM TblBaseCar');
  if SelA=true then
  ADOQueryManufacturer.SQL.Add(' WHERE Country=(ComboBoxCountry.seltext)');
  ADOQueryManufacturer.Open;
  while not ADOQueryManufacturer.Eof do
  begin
  ComboBoxManufacturer.Items.Add(ADOQueryManufacturer['Manufacturer']);
  ADOQueryManufacturer.Next;
  end;
end;

実行時にこれによりエラー ComboBoxCountry.seltext has no default value が発生します。これを修正するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

SelText使用すべきプロパティではありません。Items選択したのコンボボックスの値が必要ですItemIndex:

var
 Country: string;
begin
  ...
  if ComboBoxCountry.ItemIndex <> -1 then
  begin
    Country := ComboBoxCountryItems[ComboBoxCountry.ItemIndex];
    ADOQueryManufacturer.SQL.Add('WHERE Country = ' + QuotedStr(Country));
  end;
end;
于 2013-04-08T16:01:18.523 に答える