使用过Access数据库的朋友可能使用过其"按选定内容筛选"的功能,即先用鼠标选定字段中的部分文字,然后选择菜单"记录->筛选->按选定内容筛选",Access将自动把数据库表中所有包含这部分文字的字段信息列出,请问这种功能如何实现???
能给我个思路吗?
能给我个思路吗?
解决方案 »
- 用Delphi5的Integrated Translation Environment(ITE)实现多语言时遇到的问题,希望各位高手或者曾经有过相似经历的给予指点
- delphi非法操作
- BDE有一个非常明显的严重的Bug!!非常严重!!! 大家进来看一下........
- ADOConnection,ADOQuery是不是不能像Query组件一样放在DataModule窗体里共用?
- 如何利用网页的超链接来执行事件?
- 求助利用cr85vcl.exe结合Delphi6.0开发的Crystal报表的打包问题?
- 在stringgrid中显示一个字段数据出现的错误?
- 如何從TimeStamp類型字段中取得日期值?請各位大蝦幫忙動動腦子!
- 用QUERY,+UpdateSql,在APPLYUPDATES时出错,Table is read only, 函数序列出错!,求救
- 如何判断一个Database是否在事务处理之中?
- 我现在想做一个计算机等级考试考务管理系统,我该怎么办?
- me下如何判断某块网卡的DHCP是否enabled?
选中的每一行对应相应的TBookMark对象,你从这个方向去想想吧!
//DBGrid.根据选择的字段过滤*****************************************************
//==============================================================================
procedure TexDockForm.DBGridSelectFilter(Sender: TObject);
var FilterStr: string;
begin
with (((Sender as TMenuItem).Owner as TPopupMenu).PopupComponent as TDBGrid) do
begin
FilterStr := SelectedField.FieldName + ' = ''' + SelectedField.AsString + '''';
if DataSource.DataSet.Filter=''
then DataSource.DataSet.Filter := FilterStr
else if Pos(FilterStr, DataSource.DataSet.Filter)<=0
then DataSource.DataSet.Filter := DataSource.DataSet.Filter + ' and ' + FilterStr
else FilterStr := '';
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DataSource.DataSet.Filtered := true;
TRowCountThread.Create(((Sender as TMenuItem).Owner as TPopupMenu).PopupComponent as TDBGrid);
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
with (Sender as TMenuItem) do
begin
if Count=0 then
begin
Add(TMenuItem.Create(Owner as TPopupMenu));
Items[Count-1].Caption := '撤销过滤';
Items[Count-1].OnClick := DBGridCancelFilter;
end;
if Length(FilterStr)>0 then
begin
Add(TMenuItem.Create(Owner as TPopupMenu));
Items[Count-1].Caption := FilterStr;
Items[Count-1].OnClick := DBGridRecedeFilter;
end;
end;
end;
简单