一个文本框,用来输入查询内容
一个DATAGRID控件,用来 显示查询结果
首先,第一次输入查询内容,在DATAGRID上显示正常我接着又在文件框上输入查询内容,并且希望只能是显示在在DATAGRID的数据中寻找,这样的功能如何实现?这个功能像ACCESS的筛选
谢谢贴出第一次的查询代码mysql = "Select * from "
mysql = mysql + TABLENAME
mysql = mysql + " where 物料 like '%"
mysql = mysql + Text1.Text & "%'"
AdoRs.Open mysql, AdoCnn, adOpenDynamic, adLockPessimistic, adCmdText
Set DataGrid1.DataSource = AdoRs
那就用记录集对象的 Filter 方法。
mysql = "Select * from (" + old sql +") where ..."
else
mysql = "Select * from ..."
end if
oldsql = mysql这么写思路简单但是很没效率,如果重复多次你的查询速度会慢到崩溃。
不过如果是小程序小查询就无所谓了。另一种比较效率的做法是将此次查询结果作为临时数据插入临时表中,
下次查询的时候直接从临时表里条件查询即可。
多谢各位 Set AdoRs = New ADODB.Recordset
mysql = "Select * from "
mysql = mysql + TABLENAME
tempsql = " 物料描述 like '%" + Text3.Text & "%'"
mysql = mysql + " where " + tempsql
If Len(sqltext3) > 0 Then '如果不是第一次查询,加入上一次查询的
mysql = mysql + sqltext3
End If
AdoRs.Open mysql, AdoCnn, adOpenDynamic, adLockPessimistic, adCmdText Set DataGrid1.DataSource = AdoRs Set Text1.DataSource = AdoRs
Set Text2.DataSource = AdoRs
Set Text3.DataSource = AdoRs Text1.DataField = "物料" Text2.DataField = "旧物料号"
Text3.DataField = "物料描述"
Set AdoRs = Nothing
sqltext3 = sqltext3 + " and " + tempsql '保存这一次查询的SQL语句
DataGrid_Positon