2

ユーザーがデータベースのフィールドの一部をリストするドロップダウン コンボボックスから選択できるようにしたいです。次に、下に検索語を入力すると、クエリに一致するすべての結果が dbgrid に表示されます。ComboBox の現在の値を sql ステートメントにリンクする方法がわかりません。これを使ってみた

begin
    with ADOQuery do begin
      Close;
      SQL.Clear;
      SQL.Add ('SELECT * FROM List WHERE combobox1.text =' +   QuotedStr (Asearchterm.Text));
      Open;

そして、それは機能しません。私が得ているエラーは、「パラメーターのコンボボックス1.テキストにはデフォルト値がありません」です。何か案は?

4

2 に答える 2

3

コンボボックス 1 テキスト値を SQL ステートメントの一部として使用する場合は、次の行に沿って SQL 文字列を設定します。

'SELECT * FROM List WHERE [' + combobox1.text + '] = ''' + QuotedStr(Asearchterm.Text) + ''''

おそらくあなたが探しているものです。フィルターが常に数値になるとは限らないと推測しているため、QuotedStr の周りに余分な引用符を追加しました。これは、数値だけでなく非数値でも機能します。

于 2012-04-04T14:43:15.910 に答える
1

「combobox1.text」の代わりに、探している実際の列名を入力する必要があります。LIKEまた、キーワードといくつかのワイルドカードを使用できます。何かのようなもの:

SELECT * FROM 'table WHERE 'column' LIKE '%YOUR_SEARCH_TEXT%';

それは検索用でした...正確な文字列を見つけたい場合は=、LIKEの代わりに演算子を使用する必要があります

詳細はこちら

于 2012-04-04T14:43:19.233 に答える