У меня есть похожий .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
К вашему сведению, моя ссылка на подчиненную форму может быть не совсем верной.
Надеюсь, это поможет.