на прикреплённом скрине показано как вложены формы
форма 1 вмещает в себя все остальные
форма 2 никак не связана с другими формами
форма 3 свободная. скрывается и показывается в нужный момент. содержит сведения об одной накладной
форма 4 связана с формой 3 по коду накладной. надо же синхронизировать накладную с её товаром
форма 5 свободная никакими связями не опорочена, содержит в себе список накладных
перемещаясь по записям в форме 5 организована синхронизация с формой 3
программным кодом в событии формы 5 текущая запись
Set rst = Forms![Каталог_товаров_продажа]![продажа_расходная_накладная].Form.RecordsetClone
rst.FindFirst "[код_расх_накл] = " & CStr(m_kod_nakl_sale)
Forms![Каталог_товаров_продажа]![продажа_расходная_накладная].Form.Bookmark = rst.Bookmark
rst.Close
после чего форма 3 подтягивает список товаров в форме 4 (они связаны по коду накладной)
переменная глобальная m_kod_nakl_sale обновляется в разных местах
в форме 2 генерируется новый код накладной и соответственно надо показать форму 3 и переместить курсор
на новую только что добавленную запись
в форме 5 в случае перемещения по записям
в форме 5 в случае двойного щелка по записи заменяется Recordset и курсор надо ставить
на ту запись где он стоял до двойного щелчка
позиционирование курсора в форме 5 дополнительно должно происходить при обновлении
формы 1 и формы 2 бывают там события когда нужно сохранить позицию в форме 5
для перемещения курсора использую аналогичную конструкцию
Sub расх_накл_список_goto_позиция(ko As Long)
Dim rst As Recordset
Set rst = Forms![Каталог_товаров_продажа]![продажа_расходная_накладная].Form![продажа_расход_список].Form.RecordsetClone
rst.FindFirst "[код_расх_накл] = " & CStr(ko)
If Not rst.EOF Then Forms![Каталог_товаров_продажа]![продажа_расходная_накладная].Form![продажа_расход_список].Form.Bookmark = rst.Bookmark
rst.Close
End Sub
проблема вот в чём
по моей схеме не всегда позиционирование срабатывает внутри формы 5
в зависимости от возникшей ситуации форма 5 успевает несколько раз зарефрешиться и событие
текущая запись соответственно возникает несколько раз
причем эти несколько раз в зависимости от ситуации разное число от 1 до 4 раз
других событий кроме текущая запись я не вижу подходящими для реализации замысла
пробовал всячески , времени потерял кучу, но ничего не получается
поэтому накатал такое сочинение
помогите кто дочитал до этого места
как сделать так, чтоб позиционирование внутри формы 5 стабильно срабатывало ?
в прошлом на протяжении нескольких лет вместо формы 5 был список. Всё чудесно работало.
но список содержит ограниченное количество записей по сравнению с формой. отсюда и последовали переделки.
http://www.sql.ru/forum/1129267/pozicionirovanie-na-nuzhnuu-zapis-vo-vlozhennoy-forme