一、学友问题描述:
在使用文本框控件变换查询条件时,如何做到无条件时返回所有值呢?
二、解决方法:
首先想到的是,先用if(文本框是否为空值)进行判断,再写上对应的sql代码进行条件变换。不过这样一来,代码可能多加了一些重复的。本着尽量精简的原则
将条件改为了 [Forms]![窗体名]![控件名] or [Forms]![窗体名]![控件名] Is Null 去实现。
代码如下:
Private Sub txtwhere_AfterUpdate()
Dim strWhere As String
strWhere = "Select 采购订单查询_明细.采购订单号, 采购订单查询_明细.商品ID, 采购订单查询_明细.商品编码, " _
& "采购订单查询_明细.品名规格 , 采购订单查询_明细.单位, 采购订单查询_明细.数量, 采购订单查询_明细.单价, " _
& "采购订单查询_明细.金额 , 采购订单查询_明细.库存数量, 采购订单查询_明细.已入库数量, 采购订单查询_明细.未入库数量 " _
& "FROM 采购订单查询_明细 " _
& "Where (((采购订单号)= [Forms]![frm无条件返回值]![txtwhere] or [Forms]![frm无条件返回值]![txtwhere] Is Null));"
'即文本框为空时,条件改为Where (((采购订单号)= True));
Me.子窗体.Form.RecordSource = strWhere
End Sub
演示图: