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

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


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

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

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


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

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

     Для реализации подобного функционала необходимо сделать следующее:

     1. В модуле класса cls_freOpen указать список для экземпляров ваших форм. Например, для формы frm_1 запись должна быть такой:

Public Function crtfrm(ByVal frmName As String) As Access.Form
    Select Case frmName
        Case "frm_1": Set crtfrm = NewFormClone(New Form_frm_1)
    End Select
End Function

     2. В модуле формы на событии Закрытие нужно указать код для уничтожения созданного клона формы из коллекции экземпляров форм:

Private Sub Form_Close()
On Error Resume Next
    frmCol.Remove "" & Me.hWnd
End Sub

     Если при открытии формы вы передаете ей параметры через OpenArgs, то необходимо это делать через дополнительную переменную, объявленную в разделе General формы: Private fOpenArgs As Variant. Передача происходит в событии Открытие: fOpenArgs = MyOpenArgs. Далее обращаемся уже к fOpenArgs.

     Сделав эти простые настройки вы сможете открывать экземпляры форм стандартной командой:

Call FormOpen("frm_1", , , , , , strOPenArgs)

     где strOPenArgs – ваши параметры, передаваемые форме при открытии.

     Работа с экземплярами форм имеет одну особенность. Так как одновременно на экране может присутствовать несколько экземпляров формы, то для обращения к ним использовать имя формы нельзя, так как подобное обращение будет не корректным. Имеется в виду обращение типа:

Forms(“Имя_формы”) - так уже не получится получить ссылку на форму.

     Для получения корректной ссылки на экземпляр формы, можно воспользоваться функцией FindForm(), использующей в качестве аргумента дескриптор (Hwnd) искомой формы:

Set frm = FindForm(frmHwnd)

где frmHwnd – дескриптор формы, который можно:

  • запомнить заранее, в какую-либо глобальную переменную или массив (можно при загрузке формы): MyForm_hWnd = Me.hWnd
  • определить по уже загруженной активной форме: MyForm_hWnd = Screen.ActiveForm.hWnd

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


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

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

В избранное