-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


позиционирование на нужную запись во вложенной форме

Четверг, 27 Ноября 2014 г. 18:39 + в цитатник
на прикреплённом скрине показано как вложены формы

форма 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


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку