MS Access: порядок событий в событии ApplyFilter (ADP Project) - PullRequest
0 голосов
/ 21 апреля 2010

У меня проблемы с выполнением ServerFilterByForm в Access 2003 Когда я применяю введенный фильтр, он возвращает запрошенные данные, но после их появления на экране (Форма) он исчезает. Не знаю, почему это происходит

У кого-нибудь была такая же проблема? Как это можно решить? Вот часть кода "

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 голосов
/ 07 мая 2014

У меня есть похожий .adp.

Метод, который я использую для установки очереди, - это представление формы (я использую ее как подчиненную форму с различными очередями процессов), которая обеспечивает критерий для фильтра сервера. Это заменит ваши "выберите топ 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 кнопки

Один для следующего элемента 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

К вашему сведению, моя ссылка на подчиненную форму может быть не совсем верной.

Надеюсь, это поможет.

0 голосов
/ 21 апреля 2010

Попробуйте изменить эту строку

" WHERE " + ServerFilter & _ 

Для

" WHERE " & ServerFilter & _ 

Также, каково значение ServerFilter?

...