Reia!
Это - имевший смысл Erlang, это - beutifull, и я люблю. Это столь неизвестно, что это даже не имеет страницы Википедии!
Я хотел бы добавить сюда еще несколько вопросов и ответов, так или иначе связанных с той же проблемой. Указатели могут привести к моему собственному ответу на эти вопросы, но не стесняйтесь просматривать ответы других!
MS Access как корпоративное программное обеспечение
Лучший способ протестировать приложение MS-Access
Работа с несколькими программистами на MS -Access
Рекомендации по использованию GUIDS SQL-сервера из MS-Access
Я должен признать, что одним из основных ограничений Access является ограниченная объектная модель. Меня особенно раздражало отсутствие возможности добавить собственные свойства и методы в объект Form. Недавно я нашел эффективное решение этой проблемы, создав 2 дополнительных объекта:
объект «AllMyForms», которые фактически поддерживают 2 коллекции объектов: одна - это стандартная коллекция форм Access, другая - коллекция всех экземпляров объекта customForm. Обе коллекции индексируются с помощью свойства hwnd открытой формы (или, если быть более конкретным, свойства hwnd экземпляра формы, что позволяет мне открывать несколько экземпляров одной и той же формы).
объект "customForm" , который перечисляет мои настраиваемые свойства и методы экземпляра формы
Таким образом, я могу ссылаться на такие свойства, как:
accessForms: ссылка на стандартные свойства и методы
AllMyForms.accessForm(hwnd).name
относится к свойству .name доступа формы через его значение .hwnd
Между прочим, следующий debug.print даст мне тот же результат:
? screen.ActiveForm.name
? AllMyForms.accessForm().name 'default value for hwnd is screen.activeForm.hwnd'
Пользовательские формы: свойства
AllMyForms.customForm(hwnd).selectClause
будут ссылаться на предложение SELECT, используемое для создания базового набора записей экземпляр формы
Пользовательские формы: методы
Метод .agregate, доступный для объекта customForm, будет вычислять сумму / мин. / макс. / средн. «столбца» формы (т. е. сумму значений для элемента управления в непрерывном form):
AllMyForms.customForm().agregate("lineAmount","sum")
Выдает мне сумму всех значений lineAmount, отображаемых в текущем / активном экземпляре формы.
Одна вещь, которую я всегда должен был делать, когда я программировал Access, - это использование множества скрытых полей для привязки. Я убедился, что сделал поле невидимым, а также изменил цвет поля на белый передний план и красный фон, чтобы люди знали, что это скрытое поле.
Еще одна передовая практика, которую я использовал, заключалась в использовании модулей для всего моего общего кода . Возьмите за привычку помещать много многоразового кода в модули.
Исчерпывающий источник передовых методов программирования в Access - эта книга:
Access 2002 Desktop Руководство разработчика
http://www.amazon.com/Access-2002-Desktop-Developers-Handbook/dp/0782140092
Вам следует получить копию, если вы серьезно относитесь к программированию в Access. Эти ребята настоящие эксперты.
Я понимаю, что книга кажется устаревшей, но вся информация в ней актуальна. Я полагаю, что он никогда не обновлялся, потому что такой вид разработки является своего рода нишевой областью. Но Access не так сильно изменился внутри (это один из немногих оставшихся инструментов разработки программного обеспечения, который все еще использует то, что составляет диалект VB6), и большая часть информации в книге по-прежнему хороша.
Дополнительная книга, посвященная разработке клиент / сервер, находится здесь:
Access 2002 Enterprise Developer's Handbook
http://www.amazon.com/Access-2002-Enterprise-Developers-Handbook/dp/0782140106