Альтернатива спискамИсточник: sgml
Для ускорения выбора нужного элемента справочника проще всего задействовать свойство "Автозаполнение" раскрывающегося списка. В большинстве случаев этого вполне достаточно, но есть и исключения. Основные из них - выбор не по первым символам поля и по тем полям, которые в списке вообще не показаны. Есть еще много частных случаев, связанных как с поведением этого элемента управления, так и с особенностями проектируемого интерфейса. В любом случае, одной из альтернатив раскрывающемуся списку является выбор с помощью дополнительной формы. Как передавать и возвращать значения при таком подходе - это отдельная проблема и существует много способов ее решения. Также, как и способов отбора записей в форме. Самый простой, на мой взгляд, такой: создается подчиненная форма на основе запроса с параметрами, имена которых в точности соответствуют именам элементов управления главной формы, в которые и вводятся условия отбора записей. Так как запрос не содержит ссылок на конкретную форму, его можно использовать где угодно. Например: PARAMETERS parInfo Text, parAvgWeight IEEESingle; SELECT Apples.ID, Apples.Info, Apples.AvgWeight FROM Apples WHERE (((Apples.Info) LIKE "*" & parInfo & "*") AND ((Apples.AvgWeight)>nz(parAvgWeight,-1))); Здесь подразумевается, что в главной форме есть пара полей ввода с именами parInfo и parAvgWeight для задания фрагмента названия и минимального веса, в данном случае, яблок. Плюс такого подхода - простота. Формы даже не содержат модулей. Минус - ограниченная функциональность и реализация лишь фильтрации записей, хотя во многих случаях требуется именно переход на определенную запись. Но и это поправимо. Просто нужно организовать поиск в клоне набора записей формы с последующей синхронизацией через закладки. А как небольшое полезное дополнение можно организовать ещё и дублирование текущей записи. |