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

Microsoft Access - программирование и готовые решения


Выпуск 12. Access Rapid Start - конструктор приложений в Access

Подписка: "Access 2003/2010 - программирование и готовые решения"
Дата: 23.07.2012
Автор: Парусников Алексей
Сайт: http://www.accessoft.ru под редакцией с http://www.leadersoft.ru
Загрузка:ARS 2003 ARS 2007 ARS 2010
Получить ключ: Key_ARS

В данном цикле статей рассказывается о работе с конструктором приложений Access - Access Rapid Start. Дополнительные вопросы по этой теме Вы можете задать на форуме. Вы так же можете заказать персональную консультацию или перенос вашего проекта в ARS, связаться с автором для решения вопросов о создании программы на базе ARS - в последнем случае вы кроме готового продукта получите возможность самостоятельно его развивать.


Внимание, акция!

На 30.07.2012 назначен выход универсальной версии ARS-PRO. Основные отличия от прежних версий:

  • Добавлена возможность создавать приложения по технологии клиент-сервер. Поддержка MS SQL версий: 2000, 2005. 2007, 2008, 2009
  • Изменена форма локальных настроек – добавлены настройки для SQL-проектов и возможность разбивать настройки по группам (типам)
  • Добавлена возможность создавать шифрованные локальные настройки, доступные на чтение/изменение только через меню проекта
  • Добавлена возможность настраивать и сохранять ширины столбцов поисковых

В период с 30.07.2012 по 06.08.2012 действует скидка 50%, по которой Вы можете купить ее в интернет магазине. По окончании акции программа будет продаваться по базовой цене.


    Данная статья ориентирована на начинающих разработчиков Access, желающих более углубленно изучить возможности программирования в Access и сделать свои приложения более профессиональными.
Создание поисковых форм

     Если простую форму редактор вы можете создать мастером-построителем Access или по шаблону из формы администрирования, то с поисковой придется немного повозиться. Мы не стали выносить ее в библиотечный модуль, чтобы дать возможность максимально гибко ее настраивать.

     Основная идея стандартного интерфейса ARS – ввод данных производится через пару форм: поисковая + редактор. Так разделяются две задачи, позволяя их решать самостоятельно с максимальной эффективностью. Чтобы создать свою поисковую вам нужно просто скопировать подходящую по макету форму (например frm_ZakazFind) и сделать небольшие настройки в коде модуля и макета. Так же необходимо создать запрос-источник для поисковой.

Настройка макета

     Здесь нужно сделать столько столбцов поисковой, сколько у вас столбцов в запросе-источнике и в том, порядке, как они идут в запросе. Под порядком имеется в виду название полей сортировки (префикс Sort_). При этом нужно соблюдать правила:

  1. Первый столбец запроса (ключ главной таблицы) в макете формы не создавать
  2. Последний столбец запроса (поле Sost) будет для фильтра-списка в правом верхнем углу формы (для frm_ZakazFind это Find_7)
  3. Имена столбцов сортировки макета должны быть с префиксом Sort_ и порядковым номером – так, как они идут в запросе-источнике. Например: Sort_1, Sort_2 и т. д.
  4. Аналогично имена столбцов поиска макета должны быть с префиксом Find_ и порядковым номером – так, как они идут в запросе -источнике. Например: Find_1, Find_2 и т. д. Фильтр для поля Sost вынесен отдельно (для frm_ZakazFind это Find_7)

     Если нужно создать новую пару полей сортировки-фильтра – просто скопируйте имеющуюся и назовите ее соответствующим образом, не забывая про префикс и номер. Затем нужно проставить количество созданных столбцов на поисковой а так же их ширину в свойствах списка lst_Find. Посмотрите на примере frm_ZakazFind:

  • Число столбцов: 7 (6 на форме + фильтр для Sost в верхнем правом углу)
  • Ширина столбцов: 0см;1см;1,6см;4см;4см;2см;1см

     Обратите внимание: первый столбец нулевой ширины и соответсвующих ему Sort_0 и Find_0 на форме нет – это ключ Zak_ID (смотри запрос qry_ZakazFind), а последний 1см – его желательно делать меньшей ширины, чем реальная ширина столбцов сортировки/поиска на форме – тогда в списке он сам растянется до края. Остальные ширины столбцов соответствуют фактической ширине соответствующих по порядковому номеру столбцов сортировки/поиска на макете формы.

     Затем, чтобы была возможность открытия формы-мастера фильтров необходимо три скрытых поля txt_qry_1, txt_qry, cmd_FindMaster (они лежат вместе на поле Sort_6 с подписью Примечание в форме frm_ZakazFind) вывести на передний план. Для этого нужно выделить поля и далее в меню Access: Формат – На передний план.

     Вот собственно и все настройки макета. Потренировавшись вы будете за несколько минут настраивать поисковую, особенно, если будете использовать панель Форматирование контролов.

Настройка модуля

     Мы постарались сделать максимально простой настройку кода. Пусть вас не пугает обилие «непонятных букафф» в коде – основные настройки вынесены в самый верх модуля, вам нужно только задать значения константам. Смотрим на примере поисковой frm_ZakazFind:

  • Private Const a_FrmEditName As String = "frm_Zakaz" – задаем имя формы редактора, которая должна открываться при ДБ-клике по списку, через контекстное меню списка, нажатием на кнопки Добавить/Открыть или клавиши Enter
  • Private Const a_PrTableName As String = "tab_Zakaz" – задаем имя главной таблицы источника списка, из которой будут удаляться записи нажатием на кнопку Удалить, клавишей Delete, пункта контекстного меню
  • Private Const a_KeyName As String = "Zak_ID" – здесь пишем ключ этой главной таблицы
  • Private Const a_QryName As String = "qry_ZakazFind" – имя запроса источника
  • Private Const a_ColCount As Integer = 7 – число столбцов в запросе-источнике
  • Private Const a_QrySource As String – текст запроса источника. Просто откроем запрос в режиме SQL и скопипастим оттуда текст, убрав последнее ;

     Далее в процедуре

Public Sub Find_7_AfterUpdate()

     Изменим ее имя (если нужно). Например в форме frm_ZakazFind столбцов сортировки/поиска 7, а вашей допустим 10. Тогда вместо Find_7_AfterUpdate пишем Find_10_AfterUpdate и соответственно меняем имя фильтра-списка в правом верхнем углу формы с Find_7 на Find_10 – ведь это теперь его процедура.

     Если вы хотите использовать функцию копирования записи – тогда придется доработать функцию RecCopy(). Либо просто закомментируйте ее текст, оставив только начало и конец функции. Мы не стали процедуру копирования делать параметрической, так как часто при копировании необходимо проделывать еще кое какие процедуры помимо самого копирования.

     Как видите – и тут не так сложно разобраться даже начинающему, владеющим VBA со словарем и по слогам. В следующей статье я расскажу о новой версии ARS, с помощью которой можно создавать не только проекты Access, но и SQL-проекты на базе MS SQL Server версий 2000, 2005, 2007, 2008, 2009.

Смотреть демо-фильм


Полезные ссылки

Интернет магазин от Leadersoft.ru
В этом магазине Вы можете купить не только готовое программное обеспечение для бизнеса, а также найти компактные решения для самостоятельного проектирования на Microsoft Access, SQL Server или ASP.NET

В избранное