界面上置有数个DBEdit控件和一个DBNavigator,可正常实现相关操作。想通过Edit输入查询条件,单击“查询”按钮后:
1、让DBEdit显示结果(即指向查询到的记录)
2、此时DBNavigator能执行查询结果的相关操作(例:能指向下一条相关记录、能跳转查询结果的最后一条记录)
谢谢朋友们的帮助!
1、让DBEdit显示结果(即指向查询到的记录)
2、此时DBNavigator能执行查询结果的相关操作(例:能指向下一条相关记录、能跳转查询结果的最后一条记录)
谢谢朋友们的帮助!
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;测试过了,可以达到你的要求
按照你的方法出现了1个问题:在不进行查询时,dbedit1不能正常工作,即显示为空了。我知道是更改了数据源的结果,请问能否在不查询的状态下保持原来的功能,即dbedit1正常访问所有记录?
其实这个也好解决,你在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