VBA, MS Access MS Access в примерах

Установка курсора на запись по заданным критериям в ленточной форме (подчиненной форме)

Public Sub SetFormRecord(frm As Form, Optional strCriteria As String, Optional blToFirst As Boolean = False)
'es 22.11.2004 - 16.12.2017 LE
'Производит поиск записи по заданным критериям в форме(подчиненной форме)
'и ставит фокус на найденную запись - если она найдена
'если искомое не найдено - переход на Первую или Последнюю запись в зависимости
'от аргумента blToFirst (по умолчанию переход на последнюю запись)
'------------------------------------------------------------------------------
On Error GoTo SetFormRecordErr
    With frm
        .RecordsetClone.FindFirst strCriteria
        If .RecordsetClone.NoMatch Then
            If blToFirst = False Then
                .RecordsetClone.MoveLast
            Else
                .RecordsetClone.MoveFirst
            End If
        End If
        .Bookmark = .RecordsetClone.Bookmark
    End With
SetFormRecordBye:
    On Error Resume Next
    Set frm = Nothing
    Exit Sub
SetFormRecordErr:
    Err.Clear
    Resume SetFormRecordBye
End Sub



Пример использования:

'курсор на конкретную запись ... (objSubForm = название объекта подчинённая форма)
    SetFormRecord Me!objSubForm.Form, "GoodID = 25"


Чаще всего имеем дело с переменной

    SetFormRecord Me!objSubForm.Form, "GoodID = " & varGoodID 

Achtung!
Для обьектов подчинённая форма:
Работаем с обьектом Form ("Форма"), а не с обьектом "Подчинённая Форма"  т.е. - указание ссылки:
Me![Имя обьекта Подчинённая Форма].Form = обязательно! (или переписываем код ...)

Назад ToTop
L.E. 16.12.2017
Рейтинг@Mail.ru