いつもお騒がせしています・・
DBCtrlGrid上にDBEditを配置して、
常時DBEditにフォーカスがあります。
[Page UP Down]キー操作をしたいのですが
PageUp,Downのメソッドは何ですか?
又、パラメーターを使用したSQL文に
Form1のDBCtrlGrid上のDBEditの値
をセットしたいのですが・・
(カレントレコード)
宜しくお願いします。
こんな感じですか?
procedure TForm1.DBCtrlGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//カレントレコードが確定していないのであれば
//DBEDIT.Textだと思います。が
Query.Clear;
Query.add('select *');
Query.add(' from テーブル名');
Query.add(' where フィールド名 = '
+ DataSource.DataSet.FieldByName('フィールド名').asString);
Query.Open;
//
if Key = VK_UP then
begin
ShowMessage('DBCtrlGridでUP押されたけどDownします。');
Key := 0;
DBCtrlGrid.DoKey(gkDown);
end;
if Key = VK_DOWN then
begin
ShowMessage('DBCtrlGridでDown押されたけどUPします。');
Key := 0;
DBCtrlGrid.DoKey(gkUP);
end;
end;
mottiさんレスありがとうございます。
コントロールグリッドのPageUP,Down
操作(DoKeyメソッド)はよく理解しました。
SQLですが・・
With Query1 Do
Begin
//----中略----//
SQL.Clear;
SQL.Text := 'Select *'#13#10
+ 'From Table1'#13#10
+ 'Where (Field1 = :param1)';
ParamByName('param1').AsString :=
????(ここに、現在フォームで選択されている
レコードのフィ-ルドをセットしたいのです。)
色々試しているのですが、TSting型とTDBEdit型型
では互換性がないのエラーで・・
すいません・・解決しました。
ツイート | ![]() |