LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Кэширован...
 Тема: Кэширование записей (me.refresh)
 
 15.06.2007 19:52:25
All
4316 сообщения
1-ый


Тема: Кэширование записей (me.refresh)
У меня есть картотека в 2х таблицах: одна таблица с фирмами - "Фирмы", другая с людьми, которые там работают - "Люди". Для каждой из таблиц создана форма, причем форма для фирм включает в себя имена и телефоны из таблицы "Люди", т.е содержит subform, чтобы при выводе на экран названия фирмы, там появлялся список работающих в фирме сотрудников. Отдельная форма "Люди" более полная, т.е. содержит кроме имени и телефона еще и домашний адрес, день рождения и прочее. Так вот, когда у меня открыта большая форма "Люди", я открываю форму "Фирмы" и там в subform вношу нового сотрудника. Теперь мне надо вписать, например, его день рождения. Я перехожу обратно в форму "Люди" - но там этого человека еще нет, хотя в subform "Фирмы" я его уже ввел. Чтобы он там появился, надо сначала закрыть потом снова открыть форму "Люди" - чтобы он там появился. Та же ситуация с многими другими связанными формами/таблицами. Жутко неудобно, особенно если надо вводить много данных.
Вопрос. Access что, кэширует данные таблиц и форм в память? А как сделать чтобы он этого не делал, и внесенные данные сразу после ввода были доступны во всех других формах/таблицах?


P.S. Общий раздел по формам
Автор: Вопрос 1 от 0:00:00 Источник ...
 15.06.2007 19:52:25
All
4316 сообщения
1-ый


RE: Кэширование записей (me.refresh)
Да Access кэширует записи, хотя возможно это делает Windows, у него есть соответствующие настройки. Причем такой вариант, когда есть основная форма, а в ней подчиненная форма-таблица встречается очень часто. Даю ответ:
1. Во первых, эти формы связываются через ключевые поля, смотрите в подчиненной форме свойства: "подчиненные поля" и "ключевые поля", тогда при вводе записей обновление происходит автоматически.
2. Во вторых, если логика программы не подразумевает связей форм, то введите кнопку на главной форме (вставьте в ее событие ..._Click кнопки функцию me.refresh. Тогда при нажатии кнопки кэшируемые записи будут принудительно сбрасываться на диск и форма обновится.
3. В третьих, может оказаться, что первых двух методов не достаточно, тогда примените еще и метод requery для основной или подчиненной формы.
PS. Вообще полностью эта проблема решается с помощью методов refresh, requery, repaint, recalc. Все будет зависит от Вас и логики программы, и где их применить разработчик решает самостоятельно.


P.S. Общий раздел по формам
Автор: Виктор Конюков от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Кэширован...
ПоискПоиск  Список форумовСписок форумов  
right