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

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


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

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

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


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

     Создавать свои объекты в файле приложения Data.mdb вы можете как обычно в конструкторе или при помощи мастера-построителя Access. Однако, для того, чтобы созданные вами объекты обрабатывались ARS, необходимо сделать две вещи:

  • Прописать специальный код инициализации в модуле формы/отчета
  • Зарегистрировать форму/отчет в системе

     В результате этих действий, у ваших объектов появится стандартный функционал, который реализуется при помощи специального класса. Он состоит из следующих процедур, часть которых становится активными после инициализации, а другие нужно вызывать специальными функциями ARS.

Формы

  1. Проверка уровня доступа к форме и назначение соответствующих прав текущему пользователю
  2. Закрытие формы при нажатии кнопки Esc
  3. Блокировка скролинга (пролистывание записей формы) колеса мыши
  4. Автоматическая подгонка размеров формы под размер экрана
  5. Автоматическое определение даты и времени создания, изменения записи, а так же кода пользователя, создавшего или изменившего запись. Для работы этой простейшей системы логирования необходимо наличие специальных логирующих полей в таблице-источнике формы
  6. Реализация интерфейса «одна форма на экране» - это когда форма, с которой запускается другая форма скрывается и появляется только при закрытии запущенной с нее формы.

     Чтобы активировать процедуры формы 1, 2, 3, 5 нужно зарегистрировать форму в системе ARS и в модуле формы прописать следующий код на событие «Открытие», прописав в разделе General объявление переменной cls_Form:

Option Compare Database
Option Explicit

Private frm As cls_Form

Private Sub Form_Open(Cancel As Integer)
   Set frm = fcClassCreateForm(Me, _
      Me.Name, _
      True, _
      Null, _
   Cancel)
   If Cancel = -1 Then Exit Sub
End Sub

     Третий параметр True указывается для обычных форм-редакторов и отчетов, False - для поисковых форм. Кроме того, для успешной блокировки скроллинга необходимо наличие в корневом каталоге вашей программы MouseHook.dll.
Чтобы активировать процедуру формы 4 в модуле формы нужно прописать вызов функции ресайзинга на событие «Открытие»:

Call TransForm(Me)

     Чтобы активировать процедуру формы 6 в модуле формы нужно прописать вызов функции скрытия/визуализации на событие «Закрытие»:

Private Sub Form_Close()
     If Not IsNull(OpenArgs) Then Call VisibleFrm(Split(OpenArgs, "|")(1), True)
End Sub

     Кроме того, стандартными элементами формы ARS являются:

  • Логирующие поля – расположенные обычно в разделе формы «Примечание». Их наличие не обязательно, но через них удобно видеть последнее действие пользователя и текущий уровень доступа к форме для текущего пользователя
  • Кнопки «Добавить/Применить», «Отмена» – при помощи этих кнопок сохраняются или отменяются введенные изменения данных.

     Так как форма открывается в одном из двух режимов (Добавление/Редактирование), то обычно в событие «Открытие» формы пишется следующий код:

If Me.DataEntry Then
     cmd_Apply.Caption = "Добавить"
     Me.Caption = Me.Caption & " - добавление"
Else
     cmd_Apply.Caption = "Применить"
End If

     Он позволяет менять подпись кнопки «Добавить/Применить» в зависимости от того ,в каком режиме открыта форма. Так же соответственно меняется и подпись формы.

Отчеты

  1. Проверка уровня доступа к форме и назначение соответствующих прав текущему пользователю
  2. Закрытие отчета при нажатии кнопки Esc
  3. Автоматическое развертывание отчета во весь экран

     Чтобы активировать процедуры отчета 1, 2, 3 в модуле отчета нужно зарегистрировать отчет в системе ARS и прописать следующий код в его модуле на событие «Открытие», прописав в разделе General объявление переменной cls_Form:

Option Compare Database
Option Explicit

Private frm As cls_Form

Private Sub Form_Open(Cancel As Integer)
   Set frm = fcClassCreateForm(Me, _
      Me.Name, _
      True, _
      Null, _
   Cancel)
   If Cancel = -1 Then Exit Sub
End Sub

     Если в отчете нет данных, то для того, чтобы он не показывал пустые записи можно сразу откатить процедуру открытия. Для этого обычно пишут следующий код в процедуре отчета «Нет данных»:

Private Sub Report_NoData(Cancel As Integer)
     MsgBox "Нет данных!", vbCritical, NomWers
     Cancel = True
End Sub

     Чтобы отчет разворачивался во весь экран, нужно назначить ему в конструкторе свойства:

  • Всплывающее окно = Нет
  • Модальное окно = Нет

     Так же обычно с отчетом запускается стандартная панель меню ARS, которую нужно указать в свойстве отчета «Панель инструментов» = Report and Form.

     В следующей статье я расскажу как производить регистрацию объектов при помощи специальной формы администрирования.

Ответы на вопросы
Вопрос 10. Скачал, посмотрел, в целом понравилось. Однако в демо версии не активны кнопки добавить, открыть на поисковых формах, и дерево меню нельзя редактировать. А хотелось бы попробовать погонять программку хорошенько. Может как то по другому что то ограничить?

Ответ. Упрек справедлив. В ближайшее время выложим вариант с ограничением на количество добавляемых записей, например 20. Все кнопки будут активны, но как только записей станет больше 20 – их нельзя будут добавлять через поисковые. Кроме того, количество отображаемых записей в поисковых так же будет не более 20 в демо-версии.

Вопрос 11. Не работает поиск при длинном тексте поиска. При обрезании фразы поиск срабатывает, находя то, что заказывалось длинным текстом.

Ответ. Думаю, у вас проблема не столько в длине текста (если конечно вы не вставляете весь текст из Memo-поля в строку фильтра), а в запрещенных символах. Дело в том, что оператор Like не корректно отрабатывает, при попытке искать в строке с символами типа:  ' [ ] ? # * % и т. п. Вернее, часть из них он воспринимает как маски поиска и пытается искать по ним, что и приводит к неправильному результату. Эта проблема Like, но мы уже решаем ее. Возможно сделаем два типа поиска: простой и сложный. В простом будет обычный поиск по совпадению набираемых символов – без всяких масок, в сложном – с использованием масок. И вот в нем уже нужно будет искать так:

если нужно найти строку: и'ск?ом[ая стр]ока
то в поисковом поле нужно набирать так: и/'ск/?ом/[ая стр/]ока

Вопрос 12. В прошлый раз я уже спрашивал по поводу примера программы, сделанной в ARS – но вы указали не совсем то, хотя и похожее :) Мне все таки интересно – есть ли уже реально работающие программы сделанные именно в ARS, а не при помощи его компонентов?
Ответ. Уже есть, хотя ARS презентовали сравнительно недавно :). Медиа каталог  - полностью ARS-совская, на все 100%.

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

Архив файлов на Microsoft Access
В данном архиве файлов собраны лучшие решения на языке Visual Basic для Microsoft Access. Весь архив удачно разбит на разделы. Необходим для разработчиков, кто начинает или занимается профессиональной разработкой баз данных на Microsoft Access

Проектная документация
До начала разработки базы данных необходимо согласовать следующие документы: договор, предварительное техническое задание и оценить объем и стоимость выполняемых работ (калькуляция). Только после этого можно приступить к работам по созданию базы данных, ее макета или подробного технического задания

В избранное