MS Access:事件ApplyFilter中的事件顺序(ADP项目)

时间:2010-04-20 22:06:32

标签: ms-access adp

我在Access 2003中执行ServerFilterByForm时遇到问题 当我应用输入的过滤器时,它返回所请求的数据但在它出现在屏幕(表格)后它会消失。不知道为什么会发生这种情况

有没有人有同样的问题?怎么解决? 这是代码“

的一部分
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
    Dim stSql As String

    If Len(ServerFilter) > 0 Then
        stSql = "SELECT * FROM v_InitialReviewQuery " & _
                " WHERE " + ServerFilter & _
                " ORDER BY acctnumber"

    Else
        stSql = "SELECT top 1 * FROM v_InitialReviewQuery ORDER BY acctnumber"
    End If


    Me.RecordSource = stSql
End Sub

2 个答案:

答案 0 :(得分:0)

尝试更改此行

" WHERE " + ServerFilter & _ 

" WHERE " & ServerFilter & _ 

ServerFilter的价值是什么?

答案 1 :(得分:0)

我有一个类似的.adp。

我用来设置队列的方法是表单上的一个视图(我将它用作具有各种进程队列的子表单),它为serverfilter提供了critera。这将取代你的"选择前1 *"和我。记录。该表单作为主表单上的子表单嵌入,我提供有关各种队列的信息。行中的数字,接下来的工作,下一个SLA到期......我用它打开初始表格:

Dim stDocName As String
Dim stLinkCriteria As String
Dim Next_TD_ID As String

Forms![Launch_Control]![queue_subfrom].Form.Refresh
Next_ID = Forms![Launch_Control]![queue_subfrom].Form.[nxt_id]

stLinkCriteria = "nxt_ID = " & Next_ID
stDocName = "Work_form"
DoCmd.OpenForm stDocName, , , stLinkCriteria

然后在work_form上我使用2个按钮

一个用于que中的下一个work_item:

private sub next_button_click()
    dim nxt_id as string
    nxt_id = Forms![Launch_Control]![queue_subfrom].Form![nxt_id]
    Me.ServerFilter = "identifier_in_view = " & Nxt_id
    Me.Refresh
end sub

另一个从命令调用filterby。

Private Sub button_click(button As String)

    Forms![your_form].Reviewer.SetFocus
    Me.ServerFilter = ""
    Me.Refresh
    Me.ServerFilterByForm = True
    Me.Refresh
    DoCmd.RunCommand acCmdServerFilterByForm
end Sub

仅供参考我的子表格参考可能不是非常正确。

希望这会有所帮助。