Я уверен, что вы получите массу ответов "не делай этого", и я должен сказать, что на это есть веская причина. Это не идеальное решение ....
При этом я и раньше шел этим путем (и аналогичными), главным образом потому, что работа определяла его как жесткое требование, и я не мог обойти его.
Вот несколько вещей, которые следует учитывать при этом:
Насколько просто связать Access из Excel с помощью ADO / DAO? Это довольно ограничено с точки зрения функциональности или я могу стать креативным?
Это довольно смиренно. Вы более ограничены, чем если бы вы делали что-то, используя другие инструменты, поскольку формы VBA и Excel немного более ограничивают, чем большинство полноценных языков программирования, но нет ничего, что могло бы стать препятствием для показа. Это работает - иногда это немного уродливо, но это работает. В моей последней компании мне часто приходилось делать это, и иногда я получал данные из Access и Oracle через VBA в Excel.
Оплачиваю ли я штраф за производительность (по сравнению с использованием форм в Access в качестве пользовательского интерфейса)?
Мой опыт показывает, что определенно есть совершенство. наказание за это. Меня это никогда не волновало (в моем случае все было достаточно маленьким, чтобы это было разумно), но Excel <-> Access работает намного медленнее, чем просто работа в Access напрямую. Частично это зависит от того, что вы хотите сделать ....
В моем случае самым медленным (и самым болезненным) делом была попытка заполнить электронные таблицы Excel на основе данных Access. Это было не весело, и часто было очень медленно. Если вам нужно пойти по этому пути, обязательно сделайте все с Excel скрытым / невидимым, иначе перерисовка вас убьет.
Предполагается, что база данных всегда будет обновляться с помощью команд ADO / DAO из Excel VBA. Означает ли это, что у меня может быть несколько пользователей Excel, использующих эту единую базу данных Access, и не будет возникать проблем с параллелизмом и т. Д .?
Вы в значительной степени используете Excel в качестве клиента - так же, как вы используете приложение WinForms или любой другой инструмент. Клиенты ADO / DAO для Access довольно хороши, так что вы, вероятно, не столкнетесь с проблемами параллелизма.
Как говорится, Access НЕ масштабируется хорошо. Это прекрасно работает, если у вас есть 2 или 3 (или даже 10) пользователей. Если у вас будет 100, вы, вероятно, столкнетесь с проблемами. Кроме того, я обнаружил, что Access нуждается в регулярном обслуживании, чтобы не было проблем с коррупцией. Регулярное резервное копирование БД Access является обязательным. По моему опыту, регулярное сжатие базы данных поможет предотвратить повреждение базы данных.
Любые другие вещи, о которых я должен знать?
Вы делаете это трудным путем. Использование Excel для доступа к Access будет гораздо более трудоемким, чем просто использование Access напрямую.
Я бы порекомендовал изучить API Access VBA - большинство из них такое же, как в Excel, поэтому у вас будет небольшая кривая обучения. Части, которые отличаются, просто делают это легче. Вы также получите все преимущества отчетов и форм Access, которые намного более ориентированы на данные, чем в Excel. Отчеты могут быть полезны для подобных вещей, а наличие макросов и отчетов облегчит жизнь в долгосрочной перспективе. Если пользователь будет использовать формы для управления всем, выполнение форм в Access будет очень и очень похоже на их выполнение в Excel и будет выглядеть почти идентично, но сделает все быстрее и плавнее.