Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

Уголок ностальгии. Отмирание страниц доступа к данным

У программы Access 2003 было средство, названное страницами доступа к данным и предназначенное для создания клиентской части БД в виде Web-страницы. Идея была замечательная — с помощью таких Web-страниц любой пользователь мог просматри­вать информацию в вашей БД или вносить в нее изменения, даже не имея программы Access.

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

У Web-технологий нет таких ограничений. В действительности размещение БД в Ин­тернете равносильно приглашению полчищ пользователей для попыток одновременно­го использования БД. По этой причине, как и по некоторым другим (например, труд­ность настройки страниц доступа к данным и отсутствие совместимости с другими обозревателями), корпорация Microsoft отказалась от этого средства в Access 2007.

Если вы все же хотите придать Web-обличье вашей БД, программа Access мало чем мо­жет помочь вам. Лучшим выбором будет перенос БД на серверный программный про­дукт, например SQL Server, и применение другого средства разработки для построения Web-страницы. Серьезные программисты любят ASP.NET (см. www.asp.net), единый комплект корпорации Microsoft для создания Web-сайтов, от простейших до самых сложных.

Многопользовательский доступ

Многопользовательский доступ — это вечное жонглирование. Если все пользователи хотят читать информацию, все просто. Но в тот момент, когда они захотят внести изменения, мо­гут возникнуть серьезные проблемы. Например, что произойдет, когда два пользователя попытаются одновременно изменить одну и ту же запись? Или, когда вы пытаетесь изме­нить запись, кто-то еще старается ее удалить? Или же вы хотите прочесть свежие данные во время процесса обновления?

Ясно, что программе Access нужен способ управления хаосом. В этом разделе вы узнаете, что делает Access для того, чтобы все держать под контролем, и как можно регулировать этот процесс. Вы также научитесь предупреждать возникновение опасных ситуаций, спо­собных привести к повреждению данных.

Как вносятся изменения

Представим себе следующий сценарий. Вы говорите по телефону с расточительным клиен­том компании Boutique Fudge. Используя вашу надежную БД Access, вы просматриваете имеющиеся в наличии товары и сообщаете вашему клиенту цену каждого из них. А в это же время главный повар без вашего ведома просматривает ту же таблицу и повышает цены на самые популярные блюда. Возникает вопрос: когда вы заметите, что цены выросли?

Программа Access обрабатывает ситуации, подобные этой, с помощью автоматических обновлений. Каждые 60 секунд Access проверяет клиентскую БД, чтобы выяснить, что из­менилось. Затем программа обновляет соответствующую информацию на вашем экране, если вы просматриваете форму, запрос или непосредственно таблицу. В примере с Boutique Fudge новые цены появятся после очередного обновления, выполняемого программой Access, но не позже 60 секунд, после внесения изменений.

Из правила обновления есть несколько исключений.

  • Когда начинается редактирование записи (щелчок кнопкой мыши в одном из полей), Access немедленно обновляет именно эту запись. Это действие гарантирует, что перед тем как вносить изменения, вы получите самую свежую копию записи.

  • Если вы не можете ждать 60 секунд и вас беспокоят возможные изменения с момента последнего обновления, можно запустить немедленное обновление с помощью команды Главная Записи Обновить все (Home Records Refresh All). Если щелкнуть

мышью часть кнопки команды с нарисованной стрелкой, направленной вниз, можно вы­брать обновление только текущей записи, в которой находится курсор (выберите коман­ду Обновить (Refresh) вместо команды Обновить все (Refresh All)).

■ В отчетах не применяется автоматическое обновление. Если вы формируете отчет, подо­ждите, а затем решите, нужно ли обновлять результаты. У вас есть два варианта. Можно закрыть отчет и снова открыть его или использовать кнопку на ленте Обновить.

Если вам не нравится правило 60 секунд, можно настроить частоту повторения автома­тических обновлений программой Access. Для этого выберите кнопку Office Параметры Access (Office Access Options). В окне Параметры Access выберите категорию парамет­ров Дополнительно (Advanced) и прокручивайте перечень, пока не увидите параметр Пери­од обновления (с) (Refresh interval (sec)) (рис. 18.9).

Рис. 18.9. Период обновления определяет, как часто программа Access проверяет в многопользовательской БД внесение изменений. Можно выбрать значение (в секундах) от 1 до 32 766

Примечание

Период обновления (с) — параметр программы Access, влияющий на все многопользова­тельские БД, открываемые на данном компьютере. Если вы хотите, чтобы все использовали одинаковый период обновления, необходимо, чтобы все пользователи обновили свои пара­метры Access.

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

Обработка конфликтов редактирования

Многопользовательские БД — пример неограниченной свободы. Обычно программа Access не накладывает никаких ограничений на многопользовательские корректировки. Если пове­зет, пользователи будут вносить изменения в определенном порядке, один за другим. Но рано или поздно, изменения наложатся друг на друга и, возможно, с серьезными последст­виями.

Далее приведен пример, показывающий, к чему приводит наложение изменений.

  1. Вы открываете запрос, отображающий все товары в БД Boutique Fudge.

  2. Ищите запись — самый хорошо продаваемый чизкейк с названием Chocolate Abyss, нуждающийся в изменении. Для того чтобы начать редактирование, вы щелкаете кнопкой мыши в поле Description.

  3. В это же время Билл Эванс (Bill Evans) в отделе продаж запускает форму, которая тоже использует таблицу Products. Он добирается до той же самой записи и, догадываясь о возможности получений большей прибыли, начинает изменять цену. Теперь два пользователя работают одновременно с одной записью. Что произойдет дальше, зависит от того, кто первым зафиксирует свои изменения.

  4. Допустим, что Билл выполнил свою работу первым. В мгновение ока он повысил цену и перешел к другой записи.

  5. Вернемся к вашему компьютеру, вы закончили исправление поля Description и переходите к другой записи. Обычно в этот момент программа Access фиксирует ваши изменения, сохраняя их в серверной БД. Но в данном случае Access замечает противоречие — а именно, версия записи, с которой вы работаете, не совпадает с текущей версией записи в БД.

  6. Access предупреждает вас о проблеме и предоставляет три возможных варианта ее ис­ правления (рис. 18.10).

Рис. 18.10. Между временем начала вашего редактирования и моментом внесения его в БД кто-то еще внес изменения. Программа Access разрешает выбрать вариант обработки возникшей конфликтной ситуации

Разрешить конфликтную ситуацию можно тремя способами.

Вариант Сохранить запись (Save Record) — самый легкий и самый опрометчивый. Если выбрать его, программа Access запишет вашу версию записи поверх имеющейся в БД. Проблема состоит в том, что этот вариант аннулирует изменения, сделанные другим пользователем. В предыдущем примере в БД будет сохранено новое описание товара, но потеряется изменение цены, поскольку Access запишет ее прежнее устаревшее значение.

ВариантОтменить изменения (Drop Changes) отменяет ваше редактирование. Access обновит запись и отобразит самую свежую информацию, а затем вы можете попытаться внести ваше изменение снова. Этот вариант заслуживает внимания, если вы легко смо­жете повторить редактирование, но его нельзя считать хорошим выбором, если вы толь­ко что закончили подробное обновление большого текстового поля.

Вариант Копировать в буфер (Copy to Clipboard), как и предыдущий вариант, отменяет ваше редактирование. Однако значения, которые вы изменили, копируются в буфер, что облегчит повторное их применение, как показано на рис. 18.11.

Рис. 18.11. Если результаты последнего редактирования скопированы в буфер, понадобятся два шага для повторного их внесения. Сначала вставьте их в другую программу (например, показанную здесь программу Word). Затем выделите данные, которые хотите использовать, и снова скопируйте их в буфер с помощью комбинации клавиш <Ctrl>+<C>. И, наконец, перейдите в окно программы Access к полю, которое хотите изменить, и вставьте новое значение, нажав комбинацию клавиш <Ctrl>+<V>

Обычно лучше всего копировать в буфер и пытаться повторить редактирование. К сожа­лению, людей невозможно заставить поступать правильно. Ленивые работники могут вы­брать более быстрый вариант Сохранить запись, который незаметно уничтожит чью-то ра­боту. Хуже всего, что у пользователя, выполнившего изменение первым, нет возможности узнать, что его работа пошла насмарку. Если у вас в организации много накладывающихся корректировок, придется потратить много времени на обучение персонала правилам пове­дения при обработке подобных ситуаций.

Примечание

Любители Access часто говорят о том, что им хотелось бы иметь возможность объединять из­менения, т. е. обновлять только те поля, которые менялись. В предыдущем примере такая воз­можность позволила бы применить новое описание поля без повреждения изменения цены, сделанного предыдущим пользователем, поскольку оба обновления воздействуют на разные поля. Но программа Access не предоставляет такого варианта. Одна из причин — отсутствие возможности проверить непротиворечивость обоих изменений. Нет ничего хуже записи, проти­воречащей самой себе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]