2017-02-26 20 views
0

私のプログラムは、コンボボックスで選択された値に従ってリストビュー内の結果をフィルタリングするとします。問題:パラメータの変更後にlistviewがリフレッシュされていません。実行時にパラメータを変更するときの更新クエリ

procedure TForm1.ComboBox1Change(Sender: TObject); 
begin 
    //FDQuery1.ParamByName('paramA').AsString:=Combobox1.Selected.Text; 
    FDQuery1.Params[0].AsString:= Combobox1.Selected.Text; 
    FDQuery1.open; 
end; 

私はすでにFDQuery1.refreshを試しましたが、成功しませんでした。

Listviewとパラメーターは、設計時に問題なく動作します。選択したテキストも存在します。プログラムの実行中にエラーメッセージは表示されず、リフレッシュは行われません。

+1

あなたが後を参照してください、クエリをリフレッシュリストビュー内の項目をリロードする必要があります。http://stackoverflow.com/questions/16589670/tlistview-there-is-any-component-like-tlistview-but-with- db-access。代わりにDbGridを使用してください。 –

+0

DBGridははるかに良い選択肢です。 ListBoxをシミュレートするには、列見出しなしで1つの列のみを表示するだけです。次に、基礎となるデータセットのすべての機能を取得します。もう1つのオプションは、値をロードするためにOnRefreshイベント内にコードを記述することですが、面倒です。 –

+0

DBGridを使用していただきありがとうございます –

答えて

1

sthさんはこの文章を気に入りましたか?

FDQuery1.Close; 
    try 
    ListBox1.Clear; 
    FDQuery1.ParamByName('Param1').AsString:= Combobox1.Selected.Text; 
    FDQuery1.Prepare; 
    FDQuery1.Open; 
    while not FDQuery1.Eof do 
    begin 
     ListBox1.Items.Add(FDQuery1.FieldByName('Field1').AsString); 
     FDQuery1.Next; 
    end; 
    finally 
    FDQuery1.Close; 
    end; 
関連する問題