2010-01-05 4 views
1

Не могли бы вы порекомендовать хороший ресурс по обучению MS Access с точки зрения разработчика с хорошим опытом работы на SQL Server.От SQL Server до MS Access 2007

Кроме того, некоторые лучшие советы практика будет приветствовать, в таких областях, как

  • поддержки многопользовательский доступ
  • безопасности; как базы данных и интерфейс доступа к передней части (формы, отчеты)
  • развертывания

В принципе, если у вас есть опыт работы как в SQL Server и разработки MS Access, что лучший совет практики вы дадите ближнему своему разработчику с SQL Опыт работы с сервером, которому необходимо разработать приложение в MS Access (как в базе данных, так и в интерфейсе).

Данное приложение будет размещаться на сервере и совместно использоваться несколькими пользователями (от 10 до 20). Он должен быть написан исключительно в MS Access 2007. Доступ к данным с использованием форм и отчетов (без прямого доступа к таблицам). Будет 3 разных типа пользователей, что подразумевает разные права доступа. Все в рамках интрасети.

Я понимаю, что вопрос достаточно широк, но я скачкообразный использовать ответы в качестве хорошей отправной точки, и я буду признателен за любую информацию по этим

Спасибо

EDIT

Спасибо вам за ответы. Просто хотел уточнить, что в этом конкретном сценарии MS Access является единственным вариантом.

+2

Почему вы используете MS Access? Это абсолютное требование? У меня не так много опыта работы с Access 2007, но предыдущие версии не очень хорошо работали с несколькими пользователями - повреждение данных - очень реальная возможность. Я бы сильно подумал о чем-то вроде SQL Server Express или MySQL, если у вас есть опция. – TLiebe

+3

Являются ли эти 10-20 одновременных пользователей? Доступ может задохнуться от многих пользователей ... – taylonr

+3

Найдите другую работу - это ужасное понижение. –

ответ

4

К сожалению, доступ страдает от плохой печати и слухов, большая часть из которых очень устарела.

Есть некоторые полезные заметки здесь:

MS Access 2003 - Good book on learning advanced VBA

Is MS Access (JET) suitable for multiuser access?

Setting up an MS-Access DB for multi-user access

https://stackoverflow.com/questions/469799/what-are-the-appropriate-uses-for-ms-access

Есть целый ряд других полезных потоков в теге мс-доступа, написанные людьми с более полным опытом Acce ss, чем кажется в некоторых комментариях.

Я бы предположил, что основная трудность для кого-то с опытом SQL-сервера будет регулировать более ограниченный Jet/Ace SQL.

+0

Спасибо Remou, я просто просматриваю некоторые из выстроенных вопросов и уже нашел полезные ответы, особенно те, которые были написаны Дэвидом У. Фентоном. – kristof

+0

Дэвид сделал отличное опровержение FUD (Fear, Uncertainty and Doubt), распространенное многими люди, чьи статуты довольно невежественны. –

+0

Джи, ребята, спасибо. Он получает мою козу, когда люди распространяют ложь сознательно или истощают их по невежеству, поэтому я должен ответить. Это действительно утомительно, так что здорово, что у нас есть знакомые люди Access, такие как Тони и Альберт Каллал, а также люди, уважающие Access, такие как Remou. –

-4

MS Access не работает с несколькими пользователями, безопасность отстойна, и с большими таблицами возникают проблемы с производительностью. Я просто рискну сказать, что это СУЩЕСТВЕННО плохая идея.

- EDIT -

Изложить на "безопасность отстой":

Jet использует "слабый метод шифрования и никогда не должны использоваться для защиты конфиденциальных данных" - http://msdn.microsoft.com/en-us/library/aa139961(office.10).aspx

" Access 2007 не обеспечивает безопасность на уровне пользователей для баз данных, созданных в новом формате файлов (файлы .accdb и .accde). " - http://office.microsoft.com/en-us/access/HA101980471033.aspx?pid=CH100621891033

«все пользователи могут видеть все объекты базы данных при открытии баз данных, созданных в Office Access 2007.» - http://office.microsoft.com/en-us/access/HA101980471033.aspx?pid=CH100621891033

- END EDIT -

Если цена и простота в отчетности является основной задачей вождения направление MS Access, рассмотрим mySql с любым одним из многих инструментов, генерирование отчетов, которые существуют для него.

Я работал в компании, которая использовала базу данных MS Access с максимально 4 одновременными пользователями в ней и постоянно задыхалась.

Я бы ОЧЕНЬ буквально отказывался строить в Access.Если это требование задано в камне и не может быть изменено, я уйду сейчас, прежде чем ваша жизнь будет разрушена, и вы застряли в бесконечной петле, пытаясь исправить систему, которая никогда не должна была строиться в первую очередь ,

Другие бесплатные опции для MYSQL также существуют, как уже упоминалось в комментариях:

PostgreSQL

SQL Compact

SQL Express

И есть много других свободных/дешевых и приличных решений.

Если вы не собираетесь уходить, и требования к MS Access не собираются менять: (см:

Get started with Access 2007 security

Вы также можете прочитать this document о некоторых потенциальных проблемы и решения с вещами, которые вы собираетесь к лицу.

+2

Или Postgres: http://www.postgresql.org/ –

+0

Я не работал с этим, но я могу ЛЕГКО быть уверенным, что это будет на 200% лучше, чем использование Access для этого. –

+0

@ md5sum: Согласен, * ничего * лучше, чем Access, особенно когда есть бесплатные альтернативы. Я бы выбрал Postgres над MySQL. Postgres имеет рейтинговые/аналитические функции (начиная с 8.4), когда MySQL этого не делает. Представления MySQL не позволяют подзапросы, и я считаю, Postgres поддерживает предложение WITH. –

3

Честно говоря, я люблю доступ. Какой инструмент для промежуточного разработчика. и он приходит с MS Office. вы можете создавать полноценные приложения с этой недорогой API.

Да, есть минусы использования MSAccess. Многопользовательская поддержка - это БОЛЬШОЙ недостаток. Но давайте посмотрим правде в глаза - доступ не был специально разработан для этого.

Вы хотите создать приложение для 10-20 пользователей. Доступ идеально подходит для этого. Проблема, с которой вы столкнетесь, заключается в том, что эти пользователи получают доступ к интерфейсу и таблицам сразу (опять же с многопользовательским). Доступ как механизм базы данных хорош только для нескольких подключений. Однако доступ включает множество инструментов для решения вашего решения.

Предлагаю создать свой интерфейс, как вам подходит в Access. Вы можете опубликовать файл MDE для распространения среди конечных пользователей. Это разрешает нескольким пользователям доступ к интерфейсу. Затем вы можете увеличить свои таблицы в Access и опубликовать их в базе данных SQL. Давайте посмотрим правде в глаза - ваши орехи не используют SQL для бэкэнд, когда вы имеете дело с 10+ пользователями. SQLEXPRESS БЕСПЛАТНО. На соединениях также нет макс. Это устраняет проблему с несколькими пользователями.

Единственное обязательное условие здесь - знать или быть способным изучать VB, поскольку это жизненная среда для доступа к программированию. Ваши параметры с Access неограниченны.

РЕДАКТИРОВАТЬ: Вы можете установить права доступа рабочей группы & в Access. Кроме того - публикация файла MDE гарантирует, что внешний интерфейс не будет внесен. MDE-файл доступен только для чтения. Приятно, да? Также нет доступа к таблицам после того, как вы увеличите размер до SQL. Как насчет этого?

+0

приветствия, мне нужно придерживаться Access или, скорее, указав Jet/Ace как движок db, но хорошо знать, что переход на SQL Server - это вариант с сохранением переднего конца доступа – kristof

+0

. Нет необходимости перестраивать SQL Сервер для такой небольшой пользовательской совокупности, если популяция пользователей не удваивается, или схемы и бизнес-правила требуют, чтобы пользователи постоянно редактировали общие записи. Если пользователи вначале добавляют/редактируют новые записи, конфликтов меньше, чем если бы существующие записи часто редактировались несколькими пользователями. В последнем случае можно рассмотреть схему на основе транзакций, чтобы вместо редактирования и повторной редактирования одной и той же записи регистрировались изменения исходной записи. Не работает во всех ситуациях, но повторное проектирование схемы может преодолеть много таких проблем. –

+0

Кроме того, для параллелизма важно разработать наиболее нормализованную разумную схему, поскольку это делает обновления более подробными (например, номера телефонов - несколько столбцов в одной записи могут создавать больше конфликтов редактирования, чем несколько записей в отдельной таблице). Также выберите оптимистичную блокировку в приложении Access и убедитесь, что вы создали все свои таблицы с блокировкой уровня записи, а не блокировкой страниц. Вы также можете рассмотреть случайный Autonumber как PK, поскольку это будет распространять страницы данных более равномерно, чем последовательные. –

2

Доступ - отличный интерфейс для сервера sql. Jet также можно использовать, но с пониженной производительностью и надежностью.

Хорошие веб-сайты:

  • Allen Browne (MVP) имеет большой сайт
  • This site показаны различия между Access и Sql Server очень полезно для меня

Книги:
Есть много, но Я бы упомянул O'Reilly's Access Cookbook 2d edition.

+0

Access 2007 использует 'accdb' и' accde' сейчас, в отличие от 'mdb' и' mde'. –

+0

@ md5sum: право, но он все еще может использовать MDB и MDE, и это то, что я использую везде, где я работаю, потому что большинство проектов началось со старых версий или потому, что мне нужна некоторая обратная совместимость. Но теперь я проверю, чтобы увидеть различия, спасибо ;-) –

+0

спасибо за ссылки – kristof

1

MS Access - отличный инструмент, но, как и любые инструменты, необходимо использовать правильно. Я бы сказал, что 80% всех приложений доступа плохо построены по линии привязки формы к целой таблице и т. Д.

Со всеми моими приложениями доступа я не использую связанные формы, а вместо этого контролирую весь ввод-вывод с использованием кода и если проект никогда не выйдет за пределы доступа, я настоятельно рекомендую использовать DAO для управления данными.

Одно из моих приложений используется примерно 150 пользователями (10-30 одновременных) и не имеет проблем вообще. Есть несколько отличных сайтов от MVP доступа, и я многому научился у них.

Короткий ответ: если он спроектирован правильно, доступ должен быть идеальным для такого типа проекта. Игнорируйте скептиков и людей, как говорят, что доступ не предназначен для многопользовательских сред и код с самого начала.

+0

Интересно, что вы используете несвязанные формы. Редко, что я не использую связанные формы. –

+0

Насколько я понимаю, если вы не собираетесь использовать связанные формы, вам действительно не интересно использовать Access. Вы теряете все связанные с данными события и должны записывать для них замены. И просто не так сложно написать связанное приложение, которое не имеет проблем с параллелизмом - 10-30 не должно быть такой большой сделки. Для 150 одновременных пользователей я бы, конечно, не хотел использовать Jet/ACE в качестве задней части, и переход к серверной базе данных устраняет множество проблем параллелизма, которые могут возникнуть с задней частью Jet/ACE (хотя не все их), не требуя от вас перехода. –

+0

Это справедливая точка зрения и, в определенной степени, несвязанная, избавляет от многих полезных вещей, которые может сделать доступ. Я признаю, что иногда бывает больно делать что-то, но по большей части именно так я предпочитаю кодировать вещи. Была одна статья MVP о доступе к bound-v - unbound, но я могу вспомнить, какой из них стал поворотным моментом для меня, когда я не был связан. –

Смежные вопросы