Выдается ли запрос о сохранении при закрытии файла субд access
В данном разделе мы хотим рассказать о настройке параметров среды Access. При установке Microsoft Access они получают значения, определенные по умолчанию, однако в процессе разработки приложения вы можете переустановить их таким образом, чтобы они соответствовали особенностям конкретного приложения и были удобны для его пользователей.
Большинство параметров Access настраивается с помощью диалогового окна Параметры (Options), которое отображается при выборе команды Сервис, Параметры (Tools, Options). Все эти параметры сгруппированы по своему назначению и размещены на нескольких вкладках. На некоторые из этих параметров и вкладок мы ссылались в предыдущих главах книги (например, в гл. 11).
На рис. 14.1 представлена вкладка Вид (View) окна Параметры (Options) со значениями параметров, установленными по умолчанию.
Рис. 14.1. Диалоговое окно Параметры
Эта вкладка содержит следующие группы параметров.
- Группа параметров Отображать (Show) задает внешний вид среды Access. Флажки в этой группе позволяют скрыть или показать строку состояния (Status bar), область задач при запуске (Startup Task Pane ), ярлыки для создания новых объектов в окне База данных (New object shortcart), системные объекты и скрытые объекты. При установленном флажке окна в панели задач (Use taskbar for each document) на панели задач в нижней части экрана отображаются значки открытых объектов базы данных: форм, отчетов, запросов. Если вы не хотите загромождать панель задач, сбросьте этот флажок.
- Группа параметров Конструктор макросов (Show in macro design) позволяет показать дополнительные столбцы в окне Конструктора макросов: имена макросов и условия (см. разд. "Создание групп макросов"гл. 11).
- В группу Открывать объекты в окне базы данных (Click options in database window) входит очень полезный на наш взгляд переключатель, который позволяет открывать объекты из окна базы данных не только по двойному щелчку мыши, но и по одинарному — это гораздо удобнее.
Следующая вкладка Общие (General) (рис. 14.2) содержит ряд действительно общих параметров.
- Группа Границы печатного поля (Print Margins) позволяет установить значения полей, применяемые по умолчанию при печати любого объекта базы данных. Их можно изменить для конкретного объекта с помощью команды Файл, Параметры страницы (File, Page Setup) (см. разд. "Печать таблицы"гл. 2).
Рис. 14.2. Вкладка Общие диалогового окна Параметры
Рис. 14.3. Окно Параметры веб-документа
Вкладка Правка и поиск (Edit/Find) содержит параметры, которые используются при поиске, фильтрации и редактировании записей (рис. 14.4).
- Группа флажков Поиск и замена по умолчанию (Default Find/Replace Behavior) определяет стратегию поиска данных в таблицах Access, которая принята по умолчанию:
- флажок поле - целиком (Fast search) означает, что поиск будет вестись в текущем поле и на полное совпадение значения поля с образцом;
- флажок везде - любая часть (General search) обеспечивает поиск по всем полям и поиск вхождения искомой строки в значение поля;
- флажок поле - с начала (Start of field search) означает поиск в текущем поле на совпадение образца с первыми символами значения поля.
Рис. 14.4. Вкладка Правка и поиск диалогового окна Параметры
На вкладке Клавиатура (Keyboard) расположены параметры, которые определяют возможные перемещения курсора при вводе и редактировании данных в формах (рис. 14.5). По умолчанию определены следующие перемещения:
- переход при нажатии клавиши — следующее поле;
- переход по клавише со стрелкой вправо — следующее поле;
- поведение при входе в поле — выделить все поле; .
- останов на первом/последнем поле — нет (флажок сброшен). Вы можете настроить эти параметры удобным для вас образом.
Рис. 14.5. Вкладка Клавиатура диалогового окна Параметры
На вкладке Режим таблицы (Datasheet) (рис. 14.6) находятся параметры, которые определяют вид таблиц: тип и размер шрифта, цвета символов и фона, наличие, отсутствие и цвет сетки, специальные эффекты оформления сетки, ширину столбцов. Это те параметры, которые заданы по умолчанию для всех таблиц. При желании их можно изменить для конкретной таблицы с помощью команд меню Формат (Format).
Параметры на вкладке Формы и отчеты (Forms/Reports) позволяют задать некоторые общие для форм и отчетов значения (рис. 14.7).
- Можно задать шаблоны, которые используются по умолчанию для форм и отчетов. В качестве шаблона может быть использовано имя формы или отчета, которые оформлены в нужном стиле. Тогда все вновь создаваемые формы и отчеты будут сразу создаваться в вашем стиле, что позволит существенно сократить время разработки интерфейса. Правда, эти параметры относятся только к формам и отчетам, создаваемым без помощи мастеров.
- Группа Выделение объектов (Selection Behavior) определяет, как выполняется операция выделения объектов в режиме Конструктора форм и отчетов. По умолчанию выделяются все объекты, которые даже частично попадают в область выделения. Если выбрать переключатель охват (Fully enclosed), то будут выделены только те объекты, которые попадут в эту область целиком. Когда элементы управления в форме или отчете расположены очень плотно, лучше использовать первый переключатель — пересечение (Partially enclosed).
Рис. 14.6. Вкладка Режим таблицы диалогового окна Параметры
Рис. 14.7. Вкладка Формы и отчеты диалогового окна Параметры
- Флажок Всегда использовать процедуры обработки событий (Always use event procedures) позволяет избежать появления диалогового окна Построитель (Choose Builder). Обычно это окно появляется, когда пользователь назначает обработчик события в окне свойств формы, отчета или элемента управления. По умолчанию этот флажок сброшен. Если вы для обработки событий не используете макросов, можно его установить.
- Первая группа параметров Стандартные свойства конструктора (Default Designer Properties) касается Конструктора (Designer). Вы можете задать расстояние между разделом и полями страницы, цвет текущей строки, стили для заголовков и примечаний разделов.
- Вторая группа — Стандартные свойства БД или проекта (Default Database/Project. Properties). Вы можете установить флажок и определить папку, в которой по умолчанию будут сохраняться файлы страниц, и файл, содержащий параметры подключения страницы к базе данных (см. гл. 12).
Вкладка Другие (Advanced) объединяет параметры, определяющие функционирование приложения в многопользовательском режиме или в режиме "клиент-сервер" (рис. 14.9). Назначение этих параметров будет объяснено ниже (см. гл. 16 и 17).
Кроме того, вы можете определить используемый по умолчанию формат файла базы данных: Access 2000 или Access 2002. По умолчанию создаваемые файлы базы данных будут иметь формат Access 2000. Это позволяет использовать их как в Access 2000, так и в Access 2002. Файлы, имеющие новый формат (Access 2002), доступны только в Access 2002.
- Параметр Аргументы командной строки (Command-line Arguments) позволяет задать параметры командной строки, которые будут переданы приложению Microsoft Access при запуске.
- Группа переключателей Режим открытия по умолчанию (Default open mode) позволяет задать режим доступа к открываемой базе данных — монопольный (Exclusive) или многопользовательский (Shared).
Рис. 14.9. Вкладка Другие диалогового окна Параметры
Специальная вкладка Международные (International) (рис. 14.10) позволяет задать параметры, учитывающие использование языков, в которых текст пишется не слева направо, как мы привыкли, а справа налево, и календарь не григорианский, а юлианский. Можно, например, установить эти параметры таким образом, что если в одном предложении содержатся и арабский и европейский тексты, то при перемещении по арабскому тексту курсор будет перемещаться справа налево, а при перемещении по европейскому (русскому, английскому и т. д.) тексту — слева направо. Изменение же календаря рекомендуется делать сразу, как только создан новый файл базы данных, и потом этот параметр не менять.
Параметры, связанные с проверкой орфографии и автозамены, теперь тоже вынесены на отдельную вкладку Орфография (Spelling) (рис. 14.11). Это те же параметры, которые используются функцией проверки орфографии в Microsoft Word. Вы можете вызвать эту функцию, нажав кнопку в текстовом поле таблицы, запроса или формы.
- По умолчанию в поле Язык словаря (Dictionary Language) установлен словарь, соответствующий региональным установкам на вашем компьютере. Нужный словарь вы можете выбрать из списка в этом поле.
Рис. 14.10. Вкладка Международные диалогового окна Параметры
Рис. 14.11. Вкладка Орфография диалогового окна Параметры
- В поле Добавлять слова в (Add Words to) можно определить файл, который будет содержать ваш собственный словарь.
- Несколько флажков позволяют указать, какие слова нужно игнорировать в процессе проверки правописания.
Кнопка Параметры автозамены (AutoCorrect Options) открывает диалоговое окно, в котором задаются параметры автозамены (рис. 14.12).
Рис. 14.12. Диалоговое окно Автозамена
Назначение параметров Автозамены ясно из их названий. Автозамена используется в данном случае для выполнения следующих функций.
- Автоматическое исправление опечаток при вводе данных в текстовые поля. Исправление производится путем замены слова в левом столбце списка словом в правом столбце. По умолчанию этот список достаточно длинный. Данная функция будет эффективно использоваться, если вы настроите список таким образом, чтобы он включал в себя типичные опечатки для конкретного пользователя.
- Автоматическая замена при вводе определенных сочетаний обычных символов специальными символами.
- Автоматическое исправление типичных ошибок ввода, связанных с неправильным нажатием клавиш и Автозамена (AutoCorrect). Чтобы пополнить список Автозамены, необходимо ввести заменяемое сочетание букв в поле заменять (Replace), а заменяющее слово или словосочетание — в поле на (With) и затем нажать кнопку Добавить (Add). На последней вкладке Таблицы и запросы (Tables/Queries) размещены две группы параметров (рис. 14.13).
- Группа параметров Конструктор таблиц (Table design) определяет свойства поля, устанавливаемые по умолчанию при добавлении нового поля в таблицу: тип поля, размер для текстового и числового полей. Обратите внимание на поле Автоиндекс при импорте и создании (Autolndex on Import/Create), в котором перечисляются через точку с запятой некоторые слова. Дело в том, что когда одно из этих слов встречается в имени вновь создаваемого поля. Конструктор таблиц автоматически строит индекс по этому полю. Таким образом, если вы будете придерживаться определенных правил при наименовании полей таблиц, например все ключевые поля будете обозначать именами с суффиксом id, то ваша работа по созданию индексов для таблиц заметно упростится.
Рис. 14.13. Вкладка Таблицы и запросы окна Параметры
- Группа параметров Конструктор запросов (Query design) определяет вид и режим работы Конструктора запросов. В нем можно по умолчанию выводить имена таблиц, к которым относятся выбранные поля, показывать все поля из базовых таблиц или только включенные в бланк запроса, автоматически объединять таблицы, т. е. считать их связанными, когда в них имеются поля с одинаковыми именами и одно из них является ключевым. Здесь же можно определить права, предоставляемые по умолчанию другим пользователям для выполнения запроса.
Замечание
В диалоговое окно Параметры (Options) не включены параметры, определяющие работу в редакторе VBA и Редакторе сценариев. Они задаются в среде этих средств разработки (см. разд. "Создание сценариев Visual Basic с помощью Редактора сценариев" гл. 12 и гл. 13).
Замечание
Все параметры, устанавливаемы в окне Параметры (Options), могут изменяться динамически в процессе выполнения программы VBA с помощью метода SetOption объекта Application. Кроме того, можно прочитать значение любого из этих параметров с помощью метода GetOption того же объекта.
Базы данных – это файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Обычно всю работу по обслуживанию файловой структуры берет на себя операционная система. При работе с обычными приложениями для сохранения данных мы выдаем соответствующую команду, задаем имя файла и доверяемся операционной системе. Если мы закроем файл, не сохранив его, то вся работа по созданию или редактированию файла пропадет безвозвратно.
К базам данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.
Базы данных – это особые структуры. Информация, которая в них содержится, очень часто имеет общественную ценность. Поэтому целостность содержимого базы не может и не должна зависеть ни от конкретных действий некоего пользователя, забывшего сохранить файл перед выключением компьютера, ни от перебоев в электросети.
Проблема безопасности баз данных решается с помощью двойного подхода к операции сохранения информации. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.
Операции изменения структуры базы данных, создания новых таблиц или иных объектов происходят при сохранении файла базы данных. Об этих операциях СУБД предупреждает пользователя.
С другой стороны, операции по изменению содержания данных, не затрагивающие структуру базы, максимально автоматизированы и выполняются без предупреждения. Если, работая с таблицей данных, мы что-то меняем в составе данных, то изменения сохраняются немедленно и автоматически в файле базы данных.
Обычно, решив отказаться от изменений в документе, его просто закрывают без сохранения и вновь открывают предыдущую копию. Этот прием работает практически во всех приложениях, но только не в СУБД. Все изменения, вносимые в таблицы базы, сохраняются на диске без нашего ведома, поэтому попытка закрыть базу «без сохранения» ничего не даст, так как все уже сохранено. Таким образом, редактируя таблицы баз данных, создавая новые записи и удаляя старые, мы как бы работаем с жестким диском напрямую, минуя операционную систему.
Кроме того, при работе с СУБД имя файла задается до создания новой базы, а не после того, как вся работа проделана и остается только сохранить результат (как, например, в MS Word или MS Excel). Сделано это из соображений обеспечения сохранности данных. Все изменения, вносимые в базу данных, сразу же отображаются и в ее файлах (а поэтому программе с самого начала надо знать их имена). Таким образом, сводится к минимуму риск потери важных данных.
ответ тест i-examУ нас есть база данных Access 2010, которая действует как интерфейс для базы данных MS SQL. Когда мы редактируем данные в форме, необходимо запустить процедуру, чтобы правильно сохранить определенные данные обратно в SQL.
Наш программист БД добавил для этого кнопку «Сохранить». Но это вызывает другую проблему - в Access есть несколько способов сохранить форму -
- Перейти к следующей записи
- Нажмите на панель подтверждения слева.
- Создать новую запись
- Искать новую запись
- Используйте команды на ленте
Есть ли способ присоединить к процедуре фактическое действие сохранения, чтобы процедура запускалась независимо от того, как человек переходит к следующей форме?
[обновление]
Вот код за кадром: первая подпрограмма прикреплена к кнопке «Сохранить». Конечно, второй прилагается к форме BeforeUpdate .
Думаю, я просто не понимаю, для чего эта кнопка.
2 ответа
Ну, я не смог использовать решение г-на Соммера, потому что не удалось добавить обработчик событий в связанную таблицу в связи с их только для чтения. Но я разработал простую процедуру, которая, кажется, работает достаточно хорошо.
Итак, я на самом деле уже использовал событие BeforeUpdate , поэтому я ловлю здесь правильное событие - это событие, которое задерживает сохранение, будь то изменение навигации или панель записи сохранения слева . Однако было несколько проблем, возникших в результате использования Application.Echo False для предотвращения отправки Access старых данных в элемент управления во время выполнения Me.Undo .
Таким образом, мы используем >, чтобы предотвратить его нормальную обработку, и использую >, чтобы предотвратить попытку получить доступ к сохранению данных на связанные таблицы.
Итак, я установил пробную версию MS Access 2010 и, наконец, нашел способ решить вашу проблему. Он включает макросы данных и скрытый драгоценный камень, на поиск которого мне потребовалось довольно много времени.
Вот как вы запускаете VBA, когда таблица меняется:
- Создайте обычный модуль (не пробовал модули классов) с общедоступными функциями:
Имя модуля: EventHandlers
Откройте таблицу, которая после изменения должна запускать VBA, и перейдите к «Таблица» на ленте.
Нажмите «После вставки»
В поле «Добавить новое действие» выберите SetLocalVar (или выберите его из каталога действий).
В поле Name вставьте имя модуля (в данном случае EventHandlers, как мы создали ранее)
В поле "Выражение" напишите имя функции: InsertEvent([id]) (где [id] - это фактический столбец в таблице, для которой вы добавляете макрос данных)
Сохрани и закрой
Вы можете сделать то же самое с событием обновления. Функция может быть примерно такой:
И макрос данных будет
У нас есть многопользовательское интерфейсное / внутреннее приложение MS Access 2010. Мы добавили процесс, который будет закрывать удаленные интерфейсы, когда мы хотим выполнить работу с серверной частью, такую как сжатие и восстановление. Это проверка на основе таймера в поле таблицы, которое, если имеет определенное значение, закроет приложение.
Я провожу две проверки, подключены ли пользователи к базе данных:
У меня есть процесс входа / выхода, и я могу видеть, кто все еще вошел в систему (его форма основана на ошибках, например, они закрывают форму, но интерфейс все еще открыт).
Я использовал просмотрщик файлов .ldb, чтобы узнать, подключено ли что-нибудь еще
Есть ли вероятность, что соединение с резервным копированием могло существовать, если оно не было доступно для просмотра с помощью программы просмотра ldb?
есть ли какой-нибудь пуленепробиваемый 100% надежный способ принудительно отключить все соединения от бэкэнда?
Однако у меня есть исправление для моего приложения MS-Access:
Обходной путь, который я использую, чрезвычайно агрессивен - не совсем «ядерный вариант», заключающийся в том, чтобы пропустить лопату через источник питания здания или уступить требованиям системного администратора о человеческих жертвах, но он глубоко неприятен и требует нелепого объема работы:
- Настройте клиентов - ваши клиентские приложения MS-Access - для легкого переключения между именованными внутренними базами данных.
- Аналогичным образом, dsn-файлы, которые вы написали и разрешили другим приложениям use должен быть доступен для уже существующего скрипта для редактирования Предложение DBQ = или Data Source = для нового имени файла.
- Возьмите копию файла базы данных, перенесите ее в локальную временную папку для необходимых вам работ по обслуживанию и отправьте ее обратно в папку «Data» вашего приложения под новым именем.
- Теперь запустите скрипт Change back-end или функцию VBA .
- . И к черту всех, кто использует старый, заблокированный серверный файл.
Подсказка : внедрите свое интерфейсное приложение таким образом, чтобы оно регулярно опрашивало внутреннюю базу данных (или какой-либо другой ресурс, в худшем случае - полная блокировка) на предмет « Завершение обслуживания 'или' Изменить базу данных '- это разумная вещь, которую можно поместить в событие таймера вашей формы «Главное меню».
Кроме того, есть код для автоматизации переключения исходной базы данных для связанных таблиц.
Пользователи помещают «замки» в LDB. LDB - это своего рода база данных блокировок для MS Access.
Пользователи также устанавливают «блокировки» на LDB и MDB. Эти блокировки являются частью встроенных примитивов базы данных, предоставляемых сетью Windows и Windows.
Если нет блокировок IN ldb, пользователь не выполняет запись в MDB.
Если нет блокировок ON mdb, пользователь не использует эту службу Windows / Networking.
Чтобы получить монопольную блокировку на MDB, вам понадобятся и то, и другое. MSAccess не позволит вам исключительную блокировку, пока в LDB есть записи, показывающие, что кто-то другой использует базу данных, и Windows не предоставит вам исключительную блокировку, пока у нее есть блокировки, показывающие, что кто-то другой использует базу данных.
Чтобы 100% пуленепробиваемый опустошить LDB, вы удалите LDB. Вот почему Access всегда пытается удалить LDB при закрытии. Если Access дает сбой, или сеть отключена, или ПК или сервер выключены, LDB будет иметь данные («блокировки»), которые не были удалены. Вы избавитесь от них, удалив LDB.
Доступ не сможет удалить LDB, если у пользователя все еще есть блокировки Windows / Network на LDB. Поскольку Access игнорирует существующие записи «блокировки», чтобы очистить сломанные записи «блокировки», именно так Access / Windows предотвращает удаление LDB Access, пока другой пользователь все еще использует его.
Если существуют ЛИБО блокировки Windows или «блокировки» доступа / LDB, вы не можете получить исключительное право собственности. Если существуют ТОЛЬКО «блокировки» доступа / LDB, вы можете удалить LDB, а затем получить исключительное право собственности.
Если существуют ЛЮБЫЕ блокировки Windows / сети, никакие ваши действия с Access не могут позволить вам отключить другого человека от сети. Вам нужно перейти на сервер / компьютер, на котором размещен файл, и принудительно отключить соединение. Access - это не программа сетевого администрирования, которая делает это за вас.
Когда я смотрел последний раз, Windows Server был настроен по умолчанию на тайм-аут разорванных файловых соединений через 15 минут после потери сетевого сеанса. Поэтому, если вы выключите компьютер, подождите 15 минут, затем сработают блокировки Windows / сети (время по умолчанию). В качестве альтернативы: инструменты администратора, управление компьютером, системные инструменты, общие папки, сеансы. Выберите файл, который хотите разблокировать, и удалите сеанс.
Поможем успешно пройти тест. Знакомы с особенностями сдачи тестов онлайн в Системах дистанционного обучения (СДО) более 50 ВУЗов. При необходимости проходим систему идентификации, прокторинга, а также можем подключиться к вашему компьютеру удаленно, если ваш вуз требует видеофиксацию во время тестирования.
Закажите решение теста для вашего вуза за 470 рублей прямо сейчас. Решим в течение дня.
На механизме создания контрольных точек, содержащих сведения о состоянии системы и копии важных системных файлов, основана программа …
«Восстановление системы»
«Архивация данных»
«Мастер переноса файлов и параметров»
«Сведения о системе»В режиме просмотра документа Microsoft Word ______ представление документа полностью совпадает с его представлением для печати
структура
разметка страницы
черновик
Web-документПри закрытии таблицы СУБД MS Access не предлагает выполнить сохранение внесенных данных, потому что данные сохраняются …
автоматически сразу же после ввода в таблицу
только после закрытия всей базы данных
автоматически при закрытии таблицы базы данных
после ввода пользователем специальной команды Сохранение данныхДля того, чтобы найти Web-страницу, содержащую заданный фрагмент текста из нескольких слов, этот фрагмент необходимо
Заключить в квадратные скобки
Заключить в кавычки
Выделить знаками &
Заключить в круглые скобкиКаковы нормативы длительности обследования инновационного предприятия?
1) 1-2 дня
2) 1-2 недели
3) 1-2 месяца
4) 1-2 года… разработал язык программирования «С»
А. Ляпунов
Б. Гейтс
Д. Ритчи
Н. ВиртБыстрое внедрение операционной системы (ИС) на ограниченном участке деятельности представляет собой стратегию ИС, известную как
«узкое место»
параллельная стратегия
«пилотный проект»
«скачок»Вид ссылки на ячейку A2 листа Январь рабочей книги Бюджет.xls
Бюджет.Январь.A2
[Январь]A2
A2
[Бюджет.xls]Январь!A2Основные функции форматирования текста:
установление значений полей страницы, форматирование абзацев, установка шрифтов, структурирование и многоколонный набор
перенос, копирование, переименование, удаление
ввод текста, корректировка текстаК компонентам документальной информационно-поисковой системы относятся …
информационно-поисковый язык для отображения документов, поисковых запросов, операций над документами
документы с описанием прав, обязанностей и ответственности персонала
техническая документация на разработку программного обеспечения
массив документов (текстов), выступающий в качестве объектов хранения и поискаОсновными функциями редактирования текста являются…
ввод текста, коррекция, вставка, удаление, копирование, перемещение
выделение фрагментов текста
проверка правописания
установка межстрочных интерваловДля ускорения поиска в несортированных таблицах баз данных используют …
индексы
формы
запросы
макросыАнтивирус не только находит зараженные вирусами файлы, но и «лечит» их, т.е. удаляет из файла тело программы вируса, возвращая файлы в исходное состояние:
1. детектор
2. доктор
3. сканер
4. ревизор
5. сторожУ истоков создания компании Microsoft стоял
Линус Торвальдсо
Билл Гейтс
Ричард Столлменн
Чарльз БеббиджОператоры присваивания в языках программирования …
вводят значения переменных
меняют значения констант
определяют внутреннее представление данных в памяти компьютера
задают значения переменных4 ответа
" Я дважды проверяю, подключены ли пользователи к базе данных "
Если вам нужно открыть базу данных исключительно, вы можете пропустить другие проверки и просто проверить, можете ли вы это сделать.
Затем вызовите эту функцию, указав полный путь к вашему файлу db.
Есть ли вероятность, что соединение с резервным копированием могло существовать, если оно не было доступно для просмотра с помощью программы просмотра ldb?
Да, у меня много раз были проблемы, когда серверная часть была заблокирована, но я ничего не видел с помощью программы просмотра LDB. В этих случаях мы даже приводили к принудительному отключению компьютеров, с которых пользователи обращаются к БД. Ужасное решение, но в случае необходимости вы иногда приходите в отчаяние.
есть ли какой-нибудь пуленепробиваемый 100% надежный способ принудительно отключить все соединения от бэкэнда?
Нет, мне не удалось найти 100% способ вытеснить всех из серверной БД. Самым близким к совершенству я обнаружил использование тайм-аута Криса Симондса. -Принудительный код, расположенный в Utter Access
- Позволяет разработчику перейти на любой компьютер с использованием базы данных и заставить всех пользователей отключить разделенную базу данных, чтобы разработчик мог открыть базу данных исключительно для изменять / поддерживать БД.
- Отключает пользователей БД, если они не использовали БД в течение определенного количества минут, установленного разработчиком.
- Позволяет разработчику указывать время каждый день, чтобы все пользователи отключили разделенную базу данных и закрыли базу данных для резервного копирования, компиляции или чего-то еще.
- Все функции являются необязательными и могут быть обойдены без дополнительного кодирования, используйте только то, что вам нужно для каждой базы данных.
Я реализовал его код, и он работает около 99% времени, но все еще бывают случаи, когда MS Access становится немного раздражительным, и я не могу понять, почему БД заблокирована или заставляет всех выйти.
Исправление существует, и оно у меня есть для поддерживаемого мной приложения MS-Access. Однако это неудобно и непросто реализовать.
Во-первых, немного истории о блокировке файлов и заблокированных файлах.
Файл блокировки - полезный инструмент, но это индикатор, а не фактическая блокировка: вы можете редактировать его, но это не имеет никакого эффекта.
Сеансы Live MS-Access могут сохранять файловую блокировку для файла внутренней базы данных .accdb или .mdb, если они редактируют данные, изменяют объект (например, индексируют таблицу) или выполняют задачу обслуживания. Последние два элемента в этом списке встречаются редко - требуется некоторое усилие, чтобы повлиять на другой файл базы данных, отличный от того, который вы открыли в своем сеансе, но иногда это наблюдается в дикой природе - но закрытие этих сеансов должно снять блокировку и почти будет.
В случае сбоя сеансов MS-Access может сохраняться файловая блокировка для файла внутренней базы данных .accdb или .mdb. Принудительный перезапуск компьютеров-нарушителей должен снять блокировку, и в большинстве случаев так и будет.
Вы можете отследить их, используя файл блокировки (.ldb или .laccdb)
Сторонние приложения для создания отчетов, использующие ODBC или ADO для вашей базы данных Access, должны иметь свои подключения только для чтения, чтобы они не могли заблокировать файл. Если вам повезет , владельцы системы используют управляемый вами файл dsn, и вы можете увидеть этот параметр.
Некоторые приложения для создания отчетов, такие как QLikView, представляют собой непрозрачные интерфейсы, требующие полного имени файла, и никто не знает, что произойдет дальше: может быть, он блокируется, а может, нет. У вас нет возможности узнать .
Некоторые приложения для отчетности - и сводные таблицы Excel - могут ссылаться на вашу базу данных, и владельцы просто не сообщают вам об этом. Если их соединения плохо настроены, они могут заблокировать вашу таблицу при извлечении: а завершение клиентского сеанса может оставить блокировку на месте. Скучающие пользователи Excel, наблюдающие за медленным «обновлением» разворота, делают это все время.
Хуже того, некоторым сторонним системам может потребоваться запись данных: этого следует избегать - пройдите через клиентское приложение Access! - но вы не всегда можете принять это решение.
Если вам повезет, объект подключения настроен правильно, поэтому идентификатор машины находится в строке подключения, гарантируя, что он появится в файле блокировки и позволит вам найти машину с блокировкой .
Может быть они так поступают: часто они этого не делают.
. Обратите внимание, что запросы с блокировкой строк, запросы с блокировкой страниц и запросы с блокировкой таблиц функционально идентичны для проблемы, которая имеет для вас значение: если вам нужно что-то сделать (например, сжать и восстановить) на уровне `` файла '', файл заблокирован от вас. Пока этот замок не будет снят, вы заблокированы.
Вы можете или не можете идентифицировать машину. Вы можете или не можете заставить их отключиться от сети. Они могут или не разблокировать блокировку успешно при нормальной работе, и почти наверняка этого не произойдет, если они выйдут из строя.
Итак: это не очень красивая картина.
Лучшее решение в корпоративной среде - это иметь прямую связь с сетевым администратором с помощью инструмента «палец», чтобы определить, кто блокирует файл базы данных, возможность связаться с пользователем и возможность отключить оскорбительный сеанс.
- Если ваши организационные структуры не позволяют вам установить эту линию связи, вы облажались.
- Если сетевые администраторы вашей организации не имеют возможности или полномочий сделать это в удобные сроки, вы облажались.
- Если сетевой администратор вашей организации решит не делать этого, вы облажались.
Читайте также: