Re: Access - VBA

Госпожа Галина Стецик,
Best regards,
At 2004-11-24, 23:39:19 you wrote: >Проблема заключается вот в следующем:
Наиболее простым, можно сказать примитивным, решением Вашей проблемы было бы,
по-моему, выполнение следующих действий в указаваемой очерёдности:
1)учреждение ленточной формы для представления исходной таблицы
при этом следует отметить, что, поскольку в Вашей таблице многовато полей, чтобы
представлять их "в одну строчку", то в этой таблице выводить только ключевые
и наиболее информативные (для "юзверя") поля - С ОСТАЛЬНЫМИ ПОЛЯМИ ЭТОЙ ТАБЛИЦЫ
ВСЕ РАВНО ТОЖЕ МОЖНО РАБОТАТЬ ПРОГРАММНО!
2)учреждение таблицы для получаемых записей и такой же формы как в пункте 1 для
таблицы получаемых записей
3)учреждение в ленточной форме (пункт1) кнопки и процедуры реакции на её нажатие,
в которой программируется следующий псевдокод
ПОИСК ЗАПИСЕЙ ПО УСТАНОВЛЕННЫМ ТРЕБОВАНИЯМ
Предварительная отработа параметров
ЦИКЛ-ПОКА не обнаружен конец таблицы
Обращение к очередной строке таблицы в текущей ленточной форме
Определение значения логического выражения, представляющего требования к искомой
записи
ЕСЛИ требования удовлетворены
Занесение текущей записи в таблицу найденных записей (проще всего - обращением
к SQL через runSQL)
Учёт существования требуемых записей
ВСЕ-ЕСЛИ
ВСЕ-ЦИКЛ
ЕСЛИ требуемых записей не найдено
Выдача соответствующего сообщения
ИНАЧЕ
Обращение к ленточной форме для найденных записей (пункт 2)
ВСЕ-ЕСЛИ
ВСЕ-ПОИСК ЗАПИСЕЙ ПО УСТАНОВЛЕННЫМ ТРЕБОВАНИЯМ
Что обезопасить себя от всяческих "незадокументированных особенностей" включите
в "предварительную отработку переметров" переход на конец таблицы (acNewRec)
и на первую запись (acFirst) и делайте всё это через "On Error Resume Next" -
я подразумеваю, что переходы в таблице Вы будете делать через GoToRecord для
текущей ленточной формы.
3)скопируйте уже построренную Вами форму, о которой Вы говорите в Вашем письме
и определите для этой копии источником записей таблицу нацденных записей
3)определите в ленточной форме для найденных записей реакцию на Enter на текущей
строчке как переход к уже форме-копии из предыдущего пункта для текущей записи
НЕДОСТАТКИ ПРЕДЛАГАЕМОГО РЕШЕНИЯ
1) медлдительность
2)возможный эффект "вырви глаз" для больших таблиц - при отработке процедуры
пункта 3 курсор будет перемещаться по таблице, которая может при этом сильно
дёргаться
ПРЕИМУЩЕСТВА
1)сравнительная простота реализации
2)абсолютная надёжность реализации независимо от используемой версии Access
3)возможность следить за процессом поиска - полезно при отладке и приятно некоторым
"юзврям"
Что касается вопроса о макросе...
Access более ориентирован на реализацию процедур как реакцию на "нажатие" виртуальных
кнопок: если что-то требуется регулярно делать - "рисуйте" форму, "тавте"туда
"кнопочку" и "заводите" по нее процедуру - но это моё личное мнение.
С уважением, Приходько
Номер выпуска : 3836
Возраст листа : 433 (дней)
Количество подписчиков : 508
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/271641
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru?subject=comp.soft.prog.prog
http://subscribe.ru/ http://subscribe.ru/feedback