Microsoft Access, VB, VBA
Фактически 6 лет моей жизни были посвящены участию в разработке и поддержке очень серьёзных ERP-систем учета, базирующихся на основе СУБД Microsoft Access, самой из любимых для меня в составе маленького и очень шустрого MS Office 97.
Не скажу что являюсь фанатом MS, но эта СУБД по ряду своих характеристик и свойств стоит особняком по отношению к другим (даже аналогичным по сути) БД.
Причём, этот «особнячОк» является довлеющим для тех кто вкусил все прелести Microsoft Access, и судорожно озирается в поиске мульти-платформенного аналога, которого до сих пор нет.
Чем интересен этот продукт?
- высочайшая универсальности и продуманность пользовательского интерфейса, который рассчитан на разработчика/пользователя различной квалификации
- подкупает система управления объектами базы данных, позволяющая оперативно переходить из режима «разработчика» в режим их непосредственной эксплуатации
- широчайшие возможности интеграции с любыми программными продуктами, поддерживающими технологию OLE (т.е. не только MS)
- качественный и широкий набор визуальных средств разработки
Основные компоненты MS Access:
- построитель таблиц;
- построитель экранных форм;
- построитель SQL-запросов (язык SQL в MS Access не соответствует стандарту ANSI);
- построитель отчётов, выводимых на печать.
Они могут вызывать скрипты на языке VBA, поэтому MS Access позволяет разрабатывать приложения и БД практически «с нуля» или написать оболочку для внешней БД.
Начать работать с MS Access и создать первую базу данных и красивый отчёт может пользователь любого уровня, который знает что такое таблица EXCEL!
MS Access является файл-серверной СУБД. Статья на Википедии утверждает что она применима лишь к маленьким приложениям, т.к. отсутствует ряд механизмов, необходимых в многопользовательских БД, таких, например, как триггеры.
Категорически не согласен!!! Опыт эксплуатации системы в ООО «Русьимпорт» в файловом варианте (есть вариант работающий и в связке с MS SQL) полностью опровергает это утверждение. Я бы даже сказал что ценность этого утверждения равна нулю!
Не могу не представить сайт ведущего разработчика Андрея Митина, где представлено очень много полезных советов и практических решений на базе MS Access различных версий.
Уже упоминал, что возможности MS Access по написанию приложений расширяются механизмом связи с различными внешними (не родными для MS) СУБД методом «связанных таблиц» (связь с таблицей СУБД) и «запросами к серверу» (запрос на диалекте SQL, который «понимает» СУБД), причём можно строить полноценные клиент-серверные приложения на базе любых СУБД, а не только MS SQL Server, а средства разработки различных систем прекрасно уживаются!!!
Лично мне довелось поработать с клиент-серверными системами на базе не только MS SQL Server (в ООО «Русьимпорт»), но и с ORACLE (Филиал «Череповецкий пивзавод» ОАО «Комбинат им. Ст.Разина»). Причём, сервер ORACLE (v.7) стоял на OS Netware, а далее мигрировал на OS Linux Slackware (v.9-v.10).
Мной неоднократно предпринимались попытки запуска MS Access под Linux через Wine, но всё работало как-то неустойчиво. Скорее никак… Увы…
В OpenOffice Base сделана попытка повторить успех MS Access и его идеологию, но продукт увы пока очень сырой. Невозможность реализации VBA/VB делает Base не совместимым c MS Access и требует капитального переосмысления разработчиком. Буду продолжать периодически «щупать» новые версии OpenOffice Base…
зы: Система ERP, которая использовалась на пивзаводе, настолько хороша по функционалу, скорости, надёжности, что даже в последних версиях 1С многое, что нами сделано в ACСEES+ORACLE в начале 2000-х, ещё только-только появляется… Жаль что в 2005 на завод пришли новые московские хозяева, которые признавали только 1С (точнее другого просто не знали и знать не желали)…
- Кто-нить видел реализацию под 1С Предприятие классической задачи развоза товаров по маршрутам с учетом порядка погрузки и веса товара?
- Можете себе представить обновление 1С без остановки работы?
А у нас оно было и есть, «наш бронепоезд стоит пока на запасном пути» и ждёт инвестора… 😎
вот уж не знаю, как там у Вас все уживалось с Access’ом, но мой опыт работы (мучения) с ним говорит, что через ODBC с MySql любой запрос просто неимоверно тормозит ( а структура базы такова, что приходится регулярно обмениваться данными с MySql и из-за этого приходится заводить копии MySql таблиц в базе и периодически по ночам перекачивать содержимое в них), маниакальное стремление построителя запросов втыкать скобки куда надо и не надо превращает попытку чтения получившегося запроса в кошмар, при работе больше 10 пользователей в базе зараз резко падает скорость обработки данных. Кроме того «разбухание» самой базы, которое совершенно не связано с объемом хранящихся в ней данных, несоответствие стандарту ANSI и правилам Visual Basic (попробуйте написать в коде что-нибудь, содержащее Unicode!) — это только добавляет причины принимать валерианку при одной мысли об этой сказочной СУБД.
ИМХО
1. C MySQL не пользовал, только ORACLE и MS SQL
2. MS Access по сути был лишь очень удобным визуальным окном-конструктором по технологии клиент-сервис
3. Связанные таблицы конечно были, но тяжелые запросы были хранимыми на сервере в виде функций и процедур. В сторону сервера отдавались лишь команды, а обратно получал уже готовый поток данных для отображения