On Error Resume Next
Dim i As Integer, j As Integer
Dim sql1 As String
Dim sql2 As String
Dim sql3 As String
Dim sql4 As String
With conn
.ConnectionString = "Provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\价格评估管理系统.accdb"
.Open
End With
sql1 = "select * from 估价信息汇总 where (图号 like '%" & aa1.Value & "%') Or (名称 like '%" & aa1.Value & "%') or (毛坯X like '%" & aa1.Value & "%')"
'sql2 = "select * from 估价信息汇总 where (毛坯X like '%" & aa2.Value & "%')"
'sql3 = "select * from 估价信息汇总 where (毛坯Y like '%" & aa3.Value & "%')"
'sql4 = "select * from 估价信息汇总 where (毛坯Z/直径 like '%" & aa4.Value & "%')"
'sql = "select * from 估价信息汇总 where 图号 like '%" & aa1.Value & "%'"
'or (毛坯X like '%" & aa2.Value & "%') or (毛坯Y like '%" & aa3.Value & "%')or(毛坯Z like '%" & aa4.Value & "%')
rs.Open sql1, conn, adOpenKeyset, adLockOptimistic
rs.Open sql2, conn, adOpenKeyset, adLockOptimistic
rs.Open sql3, conn, adOpenKeyset, adLockOptimistic
rs.Open sql4, conn, adOpenKeyset, adLockOptimistic
如图片所示,有4个条件输入框,第一个输入图号和名称可以查询,第二、三、四输入X,Y,Z查询数据,我想实现的是四个查询条件能够相互过滤查询,即输入“盖板”过滤后再输入X,Y,Z依次过滤,也能先输入X,Y,Z数值过滤后再输入“盖板”也能过滤查询,相互嵌套查询,哪位指点一下该怎么做?目前只能实现sql1的过滤效果,后面的实现不
版权声明:本文为CSDN博主「weixin_44370039」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44370039/article/details/125808305
有种东西叫字符串拼接
你不要老想一行把sql写全了,那排列组合下来不得累死
一行写一个条件,先判断一下要不要根据X去过滤,要就拼接进去
示例代码:
sql1 = "select * from 估价信息汇总 where 1=1" //这里先添加个1=1,以免什么都不选的时候where变成一个语法错误
if aa1.Value!="" then sql1+=" and 图号 like '%" & aa1.Value & "%'" end if //如果aa1里有值,就拼接进sql里,没有就忽略这个条件
还有,你所有的条件之间应该是and的关系,而不是or