|
楼主 |
发表于 2017-5-25 10:28
|
显示全部楼层
Private Sub cmd查询_Click()
On Error GoTo Err_cmd查询_Click
Dim strWhere As String '定义条件字符串
strWhere = "" '设定初始值-空字符串
'判断【书名】条件是否有输入的值
If Not IsNull(Me.客户编号) Then
'有输入
strWhere = strWhere & "([客户编号] like '*" & Me.客户编号 & "*') AND "
End If
'判断【类别】条件是否有输入的值
If Not IsNull(Me.机号) Then
'有输入
strWhere = strWhere & "([机号] like '" & Me.机号 & "') AND "
End If
'判断【客户姓名】条件是否有输入的值
If Not IsNull(Me.客户姓名) Then
'有输入
strWhere = strWhere & "([客户姓名] like '*" & Me.客户姓名 & "*') AND "
End If
'判断【业务员】条件是否有输入的值
If Not IsNull(Me.业务员) Then
'有输入
strWhere = strWhere & "([业务员] like '" & Me.业务员 & "') AND "
End If
'判断【索赔金额】条件是否有输入的值,
If Not IsNull(Me.索赔金额) Then
'有输入
strWhere = strWhere & "([索赔金额] like '" & Me.索赔金额 & "') AND "
End If
'判断【进书日期】条件是否有输入的值,由于有【办理开始日期】【办理截止日期】两个文本框
'所以要分开来考虑
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
'如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
'要用LEFT函数截掉这5个字符。
If Len(strWhere) > 0 Then
'有输入条件
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
'先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
Debug.Print strWhere
'让子窗体应用窗体查询
Me.[查询1 子窗体].Form.Filter = strWhere
Me.[查询1 子窗体].Form.FilterOn = True
Exit_cmd查询_Click:
Exit Sub
Err_cmd查询_Click:
MsgBox Err.Description
Resume Exit_cmd查询_Click
End Sub
Private Sub cmd清除_Click()
'Screen.PreviousControl.SetFocus
'DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
On Error GoTo Err_cmd清除_Click
'这里将使用FOR EACH CONTROL的方法来清除控件的值
'这在控件比较多的时候非常有用。
'================================
Dim ctl As Control
For Each ctl In Me.Controls
'根据ctl的控件类型来选择
Select Case ctl.ControlType
Case acTextBox '是文本框,要清空(注意,子窗体下面还有两个锁定的文本框不能赋值)
If ctl.Locked = False Then ctl.Value = Null
Case acComboBox '是组合框,也要清空
ctl.Value = Null
'其它类型的控件不处理
End Select
Next
'取消子窗体的筛选
Me.[查询1 子窗体].Form.Filter = ""
Me.[查询1 子窗体].Form.FilterOn = False
Exit_cmd清除_Click:
Exit Sub
Err_cmd清除_Click:
MsgBox Err.Description
Resume Exit_cmd清除_Click
End Sub |
|