Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

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

Ответить   Sun, 28 Nov 2004 15:22:30 +0300 (#271641)