Устранение проблем со ссылками в базе данных Access

Оригинальный номер базы знаний: 310803

Сводка

В этой статье описываются проблемы, связанные с использованием ссылок в базе данных Access.

Чтобы разобраться в ошибках ссылок, необходимо понимать работу ссылок на библиотеки в базе данных Access, а также методы установки базы данных на целевой компьютер, не разрушая эти ссылки. В этой статье приводится сводка следующих тем:

  • Просмотр ссылок базы данных Access
  • Устранение проблем со ссылками Microsoft Visual Basic для приложений в Access
  • Понимание сообщений об ошибках ссылок
  • Решение проблем со ссылками на компьютере разработчика
  • Распространение файлов баз данных
  • Обновление списка ссылок
  • Распространение файлов баз данных с элементами управления ActiveX
  • Повторная регистрация файла

Просмотр ссылок базы данных Access

Просмотр текущих ссылок базы данных:

  1. Откройте базу данных.
  2. Нажмите клавиши ALT+F11, чтобы запустить редактор Visual Basic.
  3. В меню Сервис выберите пункт Ссылки.

Устранение неполадок ссылок Visual Basic в Access

Access загружает файл, относящийся к каждой из ссылок (например файл библиотеки типов, библиотеки объектов или библиотеки элементов управления), в соответствии с информацией, отображаемой в поле «Ссылки». Если Access не может найти файл, приложение выполняет следующие процедуры для его обнаружения:

  1. Access проверяет, загружен ли файл, на который указывает ссылка, в память.
  2. Если файл не загружен, Access проверяет RefLibPaths наличие ключа реестра. Если ключ найден, Access ищет именованное значение с названием, соответствующим соответствующим названию ссылки. При наличии совпадения Access загружает ссылку с пути, на который указывает именованное значение.
  3. После этого Access ищет файл, на который указывает ссылка, в следующих расположениях в такой последовательности:
    1. Папка приложения (расположение файла Msaccess.exe).
    2. Текущая папка, отображающаяся при нажатии Открыть в меню Файл.
    3. Папка Windows или Winnt, в которой расположены запущенные файлы операционной системы.
    4. Папка System в директории Windows или Winnt.
    5. Папки в переменной среды ПУТЬ, непосредственно доступные операционной системе.
  4. Если Access не может найти файл, возникает ошибка ссылки.

Понимание сообщений об ошибках ссылок

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

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

  • «Ошибка метода MethodName объекта ObjectName»

    Обычно это сообщение об ошибке появляется при наличии проблемы с типом программной библиотеки, например некорректный файл объекта доступа к данным (DAO) библиотеки динамической компоновки (DLL). В базе знаний Майкрософт можно найти статьи, описывающие различные виды этого сообщения об ошибке.

  • «Функция недоступна в выражении Использования»

    Это сообщение об ошибке может появиться при наличии проблемы с библиотекой программного типа, или если код не вызывает необходимую библиотеку, а файл в списке ссылок обладает более низким приоритетом, чем файл с таким же именем функции, например, если код DAO используется с библиотекой объектов данных ActiveX (ADO), приоритет которой выше, чем у библиотеки DAO. Также это сообщение может возникнуть если форма или отчет содержат элемент управления ActiveX.

  • «Не удается найти проект или библиотеку»

    Это сообщение может возникнуть если Access не может найти файл в списке ссылок. Часто в диалоговом окне «Ссылки» файл отмечается отсутствующим. Иногда файл существует на компьютере разработчика, но не на целевом компьютере.

  • «Переменная не определена» или «Пользовательский тип не определен»

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

  • «Ошибка выполнения 5», «Недопустимый вызов или аргумент процедуры», «В текущем проекте нет ссылки на библиотеку, содержащую этот символ» или «В текущем проекте нет ссылки на библиотеку, содержащую этот символ, поэтому символ не определен»

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

  • «Компонент ActiveX не может создать объект»

    Это сообщение об ошибке не обязательно означает, что оно связано с элементом ActiveX. Например, одной из возможных причин является то, что DAO, являющийся ActiveX, не может создать объект, так как сервер автоматизации DAO не может запуститься. Часто причина заключается в том, что библиотеки DLL, которые предоставляют ссылки на функции для программы, не регистрируются или регистрируются неправильно.

Решение проблем со ссылками на компьютере разработчика

Создание новой пустой базы данных и последующий импорт объектов из другого файла базы данных могут создавать проблемы с ссылками, если код или элементы ActiveX используют ссылки, которые по умолчанию не включены в базу данных. Ссылки по умолчанию для базы данных Access 2000:

  • Visual Basic for Applications
  • Библиотека объектов Microsoft Access 9.0
  • Автоматизация OLE
  • Библиотека объектов данных Microsoft ActiveX (ADO) 2.1

Если источником является другая база данных Access 2000, убедитесь, что ссылки совпадают. Если источник находится в более ранней версии Access, вероятно, используется DAO версии 3.5 или более ранней; однако Access 2000 не предоставляет DAO 3.5 по умолчанию. Попробуйте удалить ссылку на библиотеку ADO 2.1 (если она существует) и добавить ссылку на библиотеку объектов DAO 3.6.

Если вы преобразовали базу данных из более ранней версии Access, содержащей ссылку на файл Utility.mda, в большинстве случаев эту ссылку можно удалить, так как функции, которые эта ссылка вызывает, включены в ссылки по умолчанию в Access 2000. Если имеются ссылки на более ранние версии DAO, их также можно удалить, так как DAO 3.6 может выполнять эти функции.

Чтобы добавить ссылку на библиотеку, выполните следующие действия:

  1. Откройте базу данных.
  2. Нажмите клавиши ALT+F11, чтобы запустить редактор Visual Basic.
  3. В меню Сервис выберите пункт Ссылки.
  4. В разделе Доступные ссылки установите флажок рядом с именем библиотеки, а затем нажмите кнопку ОК.

Чтобы удалить ссылку на библиотеку, выполните следующие действия:

  1. Откройте базу данных.
  2. Нажмите клавиши ALT+F11, чтобы запустить редактор Visual Basic.
  3. В меню Сервис выберите пункт Ссылки.
  4. В разделе Доступные ссылки снимите флажок рядом с именем библиотеки, а затем нажмите кнопку ОК.

Распространение файлов баз данных

Существует два основных метода распределения файлов базы данных. Вы можете скопировать файл с компьютера разработчика на конечный компьютер или использовать мастер создания пакетов и развертывания для создания пакета установки.

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

При разработке приложений времени выполнения в Access следует помнить, что некоторые файлы операционной системы должны быть распределены с помощью приложения времени выполнения. Упаковка этих файлов выполняется автоматически компонентом мастера создания пакетов и развертывания Microsoft Office 2000 Developer. Иногда версии включенных файлов зависят от других приложений, которые установлены на компьютере разработчика и могли изменять файлы операционной системы.

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

  1. Создайте базу данных Access на любом компьютере.
  2. Создайте среду компьютера, в которой был переформатирован жесткий диск и была установлена только самая ранняя версия применимой операционной системы Office и Office 2000 Developer. Запустите мастер создания пакетов и развертывания на этом компьютере, чтобы создать версию приложения времени выполнения. Это гарантирует, что уровни пересмотра файлов будут работать на любом из конечных компьютеров.
  3. Создайте среду компьютера, в которой был переформатирован жесткий диск и была установлена только операционная система. Протестируйте приложение времени выполнения в этой среде.
    • Если приложение не удалось запустить, это означает, что с этим приложением возникла проблема. Перед распространением приложения необходимо определить и устранить проблему.
    • Если приложение успешно работает на тестовом компьютере, но не работает на целевом компьютере, это указывает на то, что проблема в целевом компьютере, а не в приложении. Необходимо определить и исправить вероятную причину на целевом компьютере, которой может быть несовместимость или повреждение файла.

Обновление списка ссылок

Если проблема ссылки связана с элементом управления ActiveX, иногда ее можно устранить обновив список ссылок. Обновление списка ссылок:

  1. В редакторе Visual Basic нажмите Ссылки в меню Инструменты.
  2. В диалоговом окне Ссылки щелкните невыбранную ссылку, убедитесь в правильности выбора, а затем нажмите ОК.
  3. В меню Инструменты снова выберите Ссылки.
  4. Щелкните, чтобы отменить выбор ссылки, и нажмите OK.

Распространение файлов баз данных с элементами управления ActiveX

Существует два типа лицензий для элементов управления ActiveX: лицензия для времени разработки и лицензия для времени выполнения.

  • Лицензия для времени разработки позволяет вставить лицензированные элементы управления ActiveX из Office 2000 Developer в формы и отчеты в базе данных Access.
  • Лицензия для времени выполнения позволяет использовать элементы управления ActiveX в базе данных Access на компьютере без установленного экземпляра Office 2000 Developer, но не предусматривает возможности вставки новых лицензированных элементов управления ActiveX. Для установки лицензии для времени использования, распределите элементы управления ActiveX с помощью мастера пакетов и развертывания, записывающим лицензию на элементы управления в регистре целевого компьютера.

Флаг «Отсутствует», который может отобразиться при открытии модуля в представлении «Конструктор» и нажатии Ссылки в меню Инструменты, указывает на то, что ссылка на элемент управления «Общее диалоговое окно» на целевом компьютере не совпадает с источником в файле базы данных на компьютере разработчика.

При распространении файла базы данных без установки распространяемого элемента управления «Общее диалоговое окно», ссылка на элемент управления может быть помечена отсутствующей, или может возникнуть сообщение об ошибке «Отсутствует лицензия для использования этого элемента управления ActiveX», если нераспространяемый элемент управления уже был установлен на целевой компьютер.

Даже если файл базы данных является частью выполняющегося приложения, может возникнуть сообщение об ошибке «Отсутствует лицензия для использования этого элемента управления ActiveX», если версия нераспространяемого элемента управления, установленного на целевой компьютер, старее версии этого элемента управления в выполняющемся приложении. Эта проблема может возникнуть из-за того, что приложение установки не заменяет более старые версии файлов новыми версиями этих файлов.

Повторная регистрация файла

Файл может находиться в списке ссылок, но не быть корректно зарегистрированным в реестре. Если вы подозреваете, что это действительно так, выполните следующие действия для повторной регистрации файла:

  1. В Microsoft Windows NT 4.0 нажмите кнопку «Пуск», выберите «Найти», а затем нажмите Файлы или папки, а при использовании Windows 2000 нажмите «Пуск», выберите «Поиск» и щелкните Файлы и папки.
  2. В поле Именованные или в поле Поиск именованных файлов и папок введите regsvr32.exe.
  3. В поле Поиск в выберите локальный жесткий диск (обычно диск C:).
  4. Установите флажок Включить вложенные папки и нажмите кнопку Найти или Поиск.
  5. Найдя файл нажмите Пуск, выберите Выполнить, а затем удалите все, что находится в поле Открыто.
  6. Перетащите файл Regsvr32.exe из области результатов поиска в поле Открыто.
  7. Повторите шаги 2–6, на этот раз выполнив поиск по запросуFileName.dll, где FileName — это название файла, который необходимо зарегистрировать повторно.
  8. Переместив файл FileName.dll в поле Открыто с файлов Regsvr32.exe, нажмите кнопку ОК.
  9. Проверьте, удалось ли устранить проблему, в Access.

При отсутствии файла Regsvr32.exe на компьютере, попытайтесь найти его на других компьютерах. Если файл не доступен, его можно получить на веб-сайте Microsoft.

Примечание.

Скомпилируйте все модули после настройки ссылок. Для компиляции всех модулей, убедитесь, что модуль до сих пор открыт, и нажмите Скомпилировать базу данных в меню Отладка. Если скомпилировать модули не удается, это может указывать на то, что остались дополнительные ссылки, ошибки которых не были устранены.