请问各位大侠:我用vb6写一个数据库程序,数据库用的是access。这个access数据库中有8个不同的表,每个表内的字段都各不相同,每张表内都有一定数量的记录。我现在希望通过ado写一个程序,这个程序能够实现这样的功能:输入一个关键字,程序能够对整个数据库、每一个表中的每一个字段进行该字符串的搜索,并返回结果。请问这样的功能应如何实现?望赐教。

解决方案 »

  1.   

    统计起来不难:
    SELECT (count(id) 
          +(SELECT count(id) FROM Tab2 where  instr(f1 & f2 & f3 & ... & f23 ,"关键字")>0)
          +(SELECT count(id) FROM Tab3 where  instr(f1 & f2 & f3 & ... & f23 ,"关键字")>0)
          ...... ) as 查询出的纪录条数      
    FROM Tab1 where  instr(f1 & f2 & f3 & ... & f23 ,"关键字")>0如果要显示结果,那就得看显示什么了,事实上,对于给定的关键字,某些字段纯属累赘或无意义的东西,不一定都显示出来,建议根据情况做查询,不应当在所有字段中搜索。
      

  2.   

    用UNION 解决,但是,写起来麻烦.
    形式如:
    SELECT * FROM ( 
    SELECT * FROM TABLEA WHERE .....
    UNION 
    SELECT * FROM TABLE2 WHERE .....
    .
    .
    .
    ) AS T 
    不过,我觉得还是用循环解决比较简单.
    将ACCESS数据库中的所有数据表找到来,然后,第一层循环所有数据表.
    第二层循环 取数据库中的所有字段 动态生成一条 WHERE 条件语句.