若是让dbgrid同时被adotable和adoquery使用有点不大可能.如果您不是同时显示adotable和adoquery的数据那就没什么问题了.
假设datasource1连接到adotable1,datasource2连接到adoquery1.要将dbgrid显示的数据从adotable切换到adoquery您只需改变它的datasource就行了.
比如:
    adotable1.close;
    adoquery1.close;
    dbgrid1.datasource:=datasource2;
   adoquery1.open;
这样就实现了切换.
至于查找,adotable只能对一个表进行操作.它一次读取的是整个表的数据.所以这能对已取得的数据利用  locate ,find,filter 之类的东东来定位或过滤