Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перезапросы источников списков
 
 автор: Lukas   (29.04.2010 в 18:23)   личное сообщение
32 Кб.
 
 

Скрин =>
Из формы List Any открываю форму Any Data для редактирования записи, выбранной в списке (зеленая ломаная).
На форме Any Data кнопочкой открываю форму List Items, для выбора/изменеия Item.
На форме List Items кнопочкой открываю форму Item Data для изменения значения.
Изменяю значение Item.
Теперь при нажатии кнопки "Сохранить" происходит: (красная ломаная)
Запись сохраняется, форма закрывается.
Перезапрашиваются источники:
1. Списка формы List Items
2. Комбобокса FirstItemID формы AnyData
3. Комбобокса SecondItemID формы AnyData
4. Список формы List Any.

Все вроде пока нарядно и пушисто, наглядно и быстро, но:
Во всех запросах сканируется табличка tblItems, причем, в четвертом случае аж два раза.
Подозреваю, что при достижении некоторого количества записей в табличке (+ доп фильтры к
источникам списков), вся эта "красота" начнет заметно тормозить.
Вопрос:
Может выполнять перезапросы последовательно, по мере закрытия соответствующих форм?

  Ответить  
 
 автор: Explorer   (29.04.2010 в 20:33)   личное сообщение
 
 

ты описал алгоритм работы с формами а вопрос задаешь по работе с данными

ИМХО вместо комбо-бокса на форме AnyDate должен быть текст-бокс позволяющий непосредственно редактировать данные в поле

и вместо кнопки открытия формы ListItems должна быть кнопка разворачивания комбо-бокса позволяющая вносить данные из списка вместо того, чтобы редактировать ручками.
(1 изменить ручками или 2 выбрать из списка)

или комбобокс FirstItemID должен позволять вносить данные ручками (либо LimitToList = NO либо отдельной процедурой на NotInList)

субуго ИМХО проблема в недостаточно четком алгоритме работы с элементами формы

  Ответить  
 
 автор: Lukas   (29.04.2010 в 21:13)   личное сообщение
 
 

Ну оно вроде как завязано.
1. Я могу перезапрашивать все источники сразу по закрытии формы Item Data, тогда изменения сразу будут видны в оставшихся трех формах.
2. Я могу перезапрашивать по мере закрытия форм:
Закрыл Item Data - обновил список в List Items,
Закрыл List Items - обновил в Any Data,
Закрыл Any Data - обновил список в List Any.
В этом случае перезапросы будут несколько разнесены по времени, но появится несоответствие фактических значений отображаемым в некоторых формах.

Здесь (в макете) несколько все упрощено:
Полей в табличке tblItems конечно больше, среди них некоторые (могут быть) обязательные.
Отделаться вводом/редактированием в текстбоксе/комбобоксе не получится.
По событию NotInList должна открываться форма-карточка в режиме добавления, с подставленным новым значением поля Item, для заполнения остальных полей.

Спасибо.

  Ответить  
 
 автор: osmor   (30.04.2010 в 11:04)   личное сообщение
 
 

где-то не понял

Вопрос:
Может выполнять перезапросы последовательно, по мере закрытия соответствующих форм?


и

2. Я могу перезапрашивать по мере закрытия форм:
Закрыл Item Data - обновил список в List Items,
.....



т.е. можешь.
или тебе интересно как лучше.
Я бы выбрал 2-й вариант.
Пользователю в принципе не очень важно что там сейчас в первой форме, ему все равно еще в вызванных формах нужно еще кнопку "выбрать" или "сохранить" нажимать.. а еще он наверное может и отказаться, а у тебя уже первая форма обновилась, придется ее снова обновлять....

  Ответить  
 
 автор: Lukas   (30.04.2010 в 13:41)   личное сообщение
 
 

...или тебе интересно как лучше...
Да-да-да, интересны мнения.

Я думаю (пока), что лучше обновить сразу все источники, но меня смущает, что это происходит
"чохом", что в дальнейшем может сказаться на времени реакции.

Если внесены изменения в форме Item Data и выбрана кнопка Сохранить, то обновлять источники в
формах Any Data и List Any все-равно придется, даже если в формах List Items и Any Data были нажаты
кнопки Закрыть и Отмена соответственно, потому как значение Item изменилось, и эти изменения
необходимо показать, например в списке формы List Any.
Если нажата кнопка Отмена, то событие на перезапрос источников не генерируется.

Спасибо.

Видимо, придется проводить тесты с похожими на реальные данными и смотреть время реакции
при различных количествах записей, а не "гадать на кофейной гуще".

  Ответить  
 
 автор: Explorer   (30.04.2010 в 14:34)   личное сообщение
 
 


Видимо, придется проводить тесты с похожими на реальные данными и смотреть



на будущее еще нужно иметь в виду возможные разграничения прав на редактирование записей в таблицах и возможные коллизии

  Ответить  
 
 автор: Lukas   (30.04.2010 в 15:08)   личное сообщение
 
 

Угу.
В предыдущем велосипеде за эти дела отвечал специально обученный object, но и его надо-бы основательно "перелопатить".
Спасибо.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList