Dim strWhere As String '定义条件字符串
Dim qdf As DAO.QueryDef 'qdf被定义为一个查询定义对象
Dim strSQL As String
strWhere = "" '设定初始值-空字符串
'判断【起始日期】条件是否有输入的值,由于有【起始日期】【截止日期】两个文本框
'所以要分开来考虑
If Not IsNull(Me.起始日期) Then
'【起始日期】有输入
strWhere = strWhere & "([日期] >= #" & Format(Me.起始日期, "yyyy-mm-dd") & "#) AND "
End If
If Not IsNull(Me.截止日期) Then
'【截止日期】有输入
strWhere = strWhere & "([日期] <= #" & Format(Me.截止日期, "yyyy-mm-dd") & "#) AND "
End If
'判断【人员】条件是否有输入的值
If Not IsNull(Me.Combo12) Then
'有输入
strWhere = strWhere & "([人员] like '" & Me.Combo12 & "') AND "
End If
'判断【品名】条件是否有输入的值
If Not IsNull(Me.Combo13) Then
'有输入
strWhere = strWhere & "([品名] like '" & Me.Combo13 & "') AND "
End If
'如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
'要用LEFT函数截掉这5个字符。
If Len(strWhere) > 0 Then
'有输入条件
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
'先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
Debug.Print strWhere
'让子窗体应用窗体查询
Me.低值易耗品查询子窗体.Form.Filter = strWhere
Me.低值易耗品查询子窗体.Form.FilterOn = True
Exit_查询_Click:
Exit Sub
Err_查询_Click:
MsgBox Err.Description
Resume Exit_查询_Click
End Sub
为什么在输入姓名进行查询的时候,只输入姓或者只输入名,就没有查询结果呢,一起输入才会显示,求原因 谢谢!作者: Henry D. Sy 时间: 2012-3-1 14:27
要加上通配符*作者: Henry D. Sy 时间: 2012-3-1 14:28
strWhere = strWhere & "([人员] like '*" & Me.Combo12 & "*') AND "作者: lyajyj 时间: 2012-3-1 14:50
Henry D. Sy 发表于 2012-3-1 14:28
strWhere = strWhere & "([人员] like '*" & Me.Combo12 & "*') AND "
嗯嗯 多谢多谢 问题解决了 感激涕零作者: lyajyj 时间: 2012-3-1 15:00
Henry D. Sy 发表于 2012-3-1 14:28
strWhere = strWhere & "([人员] like '*" & Me.Combo12 & "*') AND "
我还有个问题,我想添加个文本框 可以统计查询结果的数量 我先在子窗体中添加了个文本框,能够统计全部记录数量,然后又在主窗体中添加了一个文本框,控件来源:=[存书查询子窗体].[Form].[txt计数] 占了别人的代码:
Private Sub CheckSubformCount()
If Me.存书查询子窗体.Form.Recordset.RecordCount > 0 Then
'子窗体的记录数>0
Me.计数.ControlSource = "=[存书查询子窗体].[Form].[txt计数]"
Else
'子窗体的记录数=0
Me.计数.ControlSource = "=0"
End If
但是运行的时候 主窗体的文本框里面显示乱码 这是什么原因呀 作者: Henry D. Sy 时间: 2012-3-1 15:15
原因很多,为了不浪费时间来猜问题的所在,请您把例子传上来!作者: lyajyj 时间: 2012-3-2 11:07
奇怪,为什么一点回复就要我登录呢,我明明都登录成功了。多谢Henry D. Sy 昨天的问题解决了 原因是我大意的把文本框名称写错了 谢谢你 O(∩_∩)O