0

我在 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
4

2 回答 2

0

尝试更改此行

" WHERE " + ServerFilter & _ 

" WHERE " & ServerFilter & _ 

ServerFilter 的值是多少?

于 2010-04-21T07:08:16.023 回答
0

我有一个类似的.adp。

我用来设置队列的方法是一个窗体上的视图(我将它用作具有各种进程队列的子窗体),它为 serverfilter 提供标准。这将替换您的“选择前 1 个 *”和 me.recordsource。该表单作为子表单嵌入在我提供有关各种队列的信息的主表单上。排队号码,下一个工作,下一个 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 个按钮

一个用于队列中的下一个工作项:

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

仅供参考,我的子表单引用可能并不完全正确。

希望这可以帮助。

于 2014-05-07T15:21:50.070 回答