界面上置有数个DBEdit控件和一个DBNavigator,可正常实现相关操作。想通过Edit输入查询条件,单击“查询”按钮后:
1、让DBEdit显示结果(即指向查询到的记录)
2、此时DBNavigator能执行查询结果的相关操作(例:能指向下一条相关记录、能跳转查询结果的最后一条记录)
谢谢朋友们的帮助!

解决方案 »

  1.   

    所需要用到的控件edit1,dbedit1,adoquery1,datasource1,DBNavigator1,button1.
    adoquery1设置好连接字符串connectstring,指定你要查询的数据库,
    sql.text:='select * from table1 where field1 like %''' + Trim(edit1.text) + '%''';
    datasource1的dataset属性设为adoquery1.
    edit1是你录入查询字符串的地方,对应的是表table1的某个字段.
    dbedit1的datasource属性设为datasource1,datafield属性设为你要在dbedit1里显示的字段.
    dbnavigator1的datasource1属性设为datasource1.
    在button1的onclick事件里写以下代码:
    if Trim(edit1.Text) <> '' then
        adoquery1.Open;测试过了,可以达到你的要求
      

  2.   

    感谢yiyideyi(一一得一),按照你的方法出现了1个问题:在不进行查询时,dbedit1不能正常工作,即显示为空了。我知道是更改了数据源的结果,请问能否在不查询的状态下保持原来的功能,即dbedit1正常访问所有记录?
      

  3.   

    感谢yiyideyi(一一得一)!
    按照你的方法出现了1个问题:在不进行查询时,dbedit1不能正常工作,即显示为空了。我知道是更改了数据源的结果,请问能否在不查询的状态下保持原来的功能,即dbedit1正常访问所有记录?
      

  4.   

    还有这样玩的,I服了you 晕~~~~
      

  5.   

    to jinlingfengwq()
    其实这个也好解决,你在form的oncreate或者onshow事件把数据集的sql语句写成
    'select * from table1 ',然后将数据集激活
    adoquery1.Active := true;
    在执行查询时的button1.onclick事件中
    adoquery1.close;
    addstr := ' where field1 like %''' + Trim(edit1.text) + '%''';
    adoquery1.sql.text := adoquery1.sql.text + addstr;
    adoquery1.open;再另外放个按钮,caption为'所有',onclick事件同oncreate或者onshow