|
|
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
Объясняю ситуацию как можно подробнее: Есть форма, на которой есть компонент-список, который содержит данные из какой-то таблицы, с формой не связанной (назову эту таблицу "справочник"). И допустим возникает ситуация: пользователь заполняет поля на форме, часть из них уже заполнил, и вдруг обнаружил, что в справочнике (т.е. в списке) отсутствуют необходимые данные. С этой целью он, чтобы не терять внесенные данные, не закрывая текущую форму, идет и добавляет в таблицу-справочник новую строку. Закрывает ее. Возвращается к своей форме - и... не видит внесенных данных. И не увидит до тех пор, пока не закроет ее и вновь не откроет. А это грозит потерей введенной информации. Вопрос: есть ли ВООБЩЕ возможность, не обновляя каждый такой список (а их штук 50 уже) поименно при изменении "справочников", сделать их как бы динамическими? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:00 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
После добавления в справочник Requery списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:04 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
Пардон не доглядел, что нет желания обновлять справочники поименно. А как вносятся дополненния в справочник? идет и добавляет в таблицу-справочник новую строку. Прямо в таблицу шагает? Или таки форму открывает? Если форму, то почему бы и не повесить на закрытие (или AfterUpdate) обновление поля основной формы? Если "в лом" поименно, то можно нарисовать общую функцию для всех и после обновления справочника обновлять поле этой функцией. Предварительно в общем модуле придется объявить глобальную переменную As Control и при входе в поле присваивать этой перменной значение. Тогда ее можно использовать как ссылку на то поле, которое нужно обновить + можно и тут же в это поле добавлять нужное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:22 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
можно для поля со списком повесить обработку события - отсутствие в списке-открыть форму в режиме диалога для ввода необходимых изменений на закрытие формы повесить реквери для поля со списком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:28 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
Елка, поделюсь своим опытом, приобретенным в общении с замечательными людьми на этом форуме. Я себе сделал такую весчь, которой наслаждаюсь. Вкратце: пополнение всех справочников должно производиться посредством ОДНОЙ функции, которая замещает событие NotInList Комбобокса. Для этого сделал следующее. 1.Всем таблицам заполнил дескрипторы (то, что открывается по правой кнопке мыши - краткое описание таблы) 2.Всем полям в таблицах-справочниках дал описания, поля, желательные для заполнения, пометил фразой "желательно заполнить" 3.Все комбобоксы устроил одинаково - RowSource - Select fieldID, fieldName ..., причем НЕ сохраненный, чтобы можно было сразу анализировать строку 4.Написал функцию, которая из этого селекта вытягивает название таблицы, название ключевого ID-поля и основного Name-поля. 5.Открывая TableDef таблицы получаю названия полей с признаком "желательно заполнить" 6.В формах, в которых есть комбобоксы, вставляю короткий код, позволяющий отключать системное сообщение Item Not in List (передаю там параметр Response) 7.Названия всех комбо, в которых событие Not In List обрабатывается нестандартным образом (т.е. почти всех), поместил в отдельную табличку И теперь не знаю забот - если в комбо введено значение, которого нет, то процедурка говорит, что нужно добавить в таблицу такую-то(краткое описание таблы) в поле такое-то(описание поля) значение такое-то (ОК,Кансел) и если есть поля желательные, то их тоже просит заполнить. С виду гемора много, но зато на перспективу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2003, 17:41 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
Лифчик: Могу ошибаться насчет NotInList, но дело в том, что по постановкам моей задачи пользователь не может вносить данные, не присутстующие в списке-справочнике (свойство "ограничиться списком" = yes) - не я писала постановку, не мне судить насколько такое решение правильно, но если судить по уровню наших пользователей, им как-раз такое и надо. Соответственно, ему прийдется идти и заполнять этот справочник. Витал, Вадя: это фактически тоже самое, что обновлять поименно - на каждое поле со списком вешать обработчик в любом случае прийдется. Всем: я имела ввиду вообще возможность обойти создание обработчика для каждого такого списка. Сама знаю, что не получится так (хотя вот мне посоветовали вместо обращения к таблице напрямую в recordsource писать запрос - попробую), но вдруг кто-то как-то обошел это... Спасибо за ответы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 08:53 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
Маэстро Скотт Ф.Баркер в книжке "Профессиональное программирование в Access 2002" говорит, что без обработчика ни как не обойтись и приводит пример этого обработчика, который классно работает. Я, лично, просто не нарадуюсь и пользователи тоже. Если нужен код могу сбросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 09:02 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
JinP :Да, было бы замечательно, скинь, пожалста :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 11:39 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
JinP :И мне тоже хочу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 15:29 |
|
||
|
Динамическое обновление списков в Access
|
|||
|---|---|---|---|
|
#18+
и мне ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 16:53 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32282997&tid=1679067]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 428ms |

| 0 / 0 |
