Office中国论坛/Access中国论坛

标题: 请高手帮忙看看下面的代码错在哪里。 [打印本页]

作者: snryga    时间: 2017-8-27 22:32
标题: 请高手帮忙看看下面的代码错在哪里。
以下代码只能执行([表历史告警清单查询筛选子窗体])的筛选,要如何改哦!

Private Sub 确定_Click()
    On Error GoTo Err_确定_Click
    Dim strWhere As String
    strWhere = ""
    If Not IsNull(Me.包站人筛选) Then
        strWhere = strWhere & "([表历史告警清单查询筛选子窗体]![包站人] like '*" & Me.包站人筛选 & "*') AND " & ""
        strWhere = strWhere & "([库历史告警清单库子窗体]![包站人] like '*" & Me.包站人筛选 & "*') AND "
    End If

    If Not IsNull(Me.站址名称筛选) Then
        strWhere = strWhere & "([表历史告警清单查询筛选子窗体]![站址名称] like '*" & Me.站址名称筛选 & "*') AND " & ""
        strWhere = strWhere & "([库历史告警清单库子窗体]![站址名称] like '*" & Me.站址名称筛选 & "*') AND "
    End If

    If Len(strWhere) > 0 Then
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If

    Debug.Print strWhere
    Forms![犍为专项整治信息登记表]![表历史告警清单查询筛选子窗体].Form.Filter = strWhere
    Forms![犍为专项整治信息登记表]![表历史告警清单查询筛选子窗体].Form.FilterOn = True
    Forms![犍为专项整治信息登记表]![库历史告警清单库子窗体].Form.Filter = strWhere
    Forms![犍为专项整治信息登记表]![库历史告警清单库子窗体].Form.FilterOn = True

Exit_确定_Click:
    Exit Sub

Err_确定_Click:
    MsgBox Err.Description
    Resume Exit_确定_Click
End Sub


作者: tmtony    时间: 2017-8-27 23:10
要写明在哪句出错
作者: Henry D. Sy    时间: 2017-8-28 10:10
附件呢
作者: snryga    时间: 2017-8-28 13:58
提示:无效的括号名称“|”。但如何只执行包站人就不出错,执行“站址名称”就出错
作者: Henry D. Sy    时间: 2017-8-28 14:54
两个窗体的筛选字符串为何不用不同的变量??
作者: snryga    时间: 2017-8-28 17:24
没明白,如何改呢
作者: Henry D. Sy    时间: 2017-8-28 17:26
传附件吧!
否则只能靠猜!
作者: snryga    时间: 2017-8-28 18:36
我改成了这样,好象得行了。谢谢!!!

Private Sub 确定_Click()
Dim strWhere1, strWhere2 As String
strWhere1 = ""
strWhere2 = ""
If Not IsNull(Me.包站人筛选) Then
    strWhere1 = strWhere1 & "包站人 like '*" & Me.包站人筛选 & "*' and "
    strWhere2 = strWhere2 & "包站人 like '*" & Me.包站人筛选 & "*' and "
End If
If Not IsNull(Me.站址名称筛选) Then
    strWhere1 = strWhere1 & "站址名称 like '*" & Me.站址名称筛选 & "*' and "
    strWhere2 = strWhere2 & "站址名称 like '*" & Me.站址名称筛选 & "*' and "
End If
If Len(strWhere1) > 0 Then strWhere1 = Left(strWhere1, Len(strWhere1) - 5)
If Len(strWhere2) > 0 Then strWhere2 = Left(strWhere2, Len(strWhere2) - 5)
    Forms![犍为专项整治信息登记表]![表历史告警清单查询筛选子窗体].Form.Filter = strWhere1
    Forms![犍为专项整治信息登记表]![表历史告警清单查询筛选子窗体].Form.FilterOn = True
    Forms![犍为专项整治信息登记表]![库历史告警清单库子窗体].Form.Filter = strWhere2
    Forms![犍为专项整治信息登记表]![库历史告警清单库子窗体].Form.FilterOn = True
End Sub




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3