Каковы последствия использования базы данных Microsoft Access в 2003 и 2007 годах? - PullRequest
1 голос
/ 16 сентября 2008

Каковы последствия использования базы данных Microsoft Access в 2003 и 2007 годах?

Есть какой-то класс, который я забыл взять?

Программа изначально была построена в Office 2003, а затем запущена в 2007 году. Проблемы, кажется, возникают, когда на машине, на которой она выполняется, установлены 2003 и 2007 годы. Эта проблема также может быть вызвана ссылкой на «Библиотеку объектов Microsoft Access 12.0» (или «Библиотеку объектов Microsoft Access 11.0» в 2003 году). Чтобы увидеть это, просто посмотрите в меню «Инструменты: ссылки» на экране VBA.

Признак ошибки в основном состоит в том, что код не распознается (почти как если бы он не распознавал используемый мной язык программирования). Обычно это следует за окном с надписью «Выражение при загрузке, введенное вами в качестве параметров свойства события, выдает следующую ошибку: объект или класс не поддерживает набор событий». Вы также можете заменить «On Load» на «On Click» для кнопок или «On Change» для текстовых полей.

Я лично подозреваю, что компьютер принимает части библиотеки объектов Microsoft Access 11.0 / 12.0, а затем смешивает их в бесполезную ссылку на VBA. Что еще подтверждает мое подозрение, так это окно, которое появляется при переходе между двумя надписями «Конфигурирование Microsoft Access». Еще одна проблема, которая еще раз подтверждает мое подозрение, это то, что он будет работать на том, на котором он был открыт первым (например, в 2007 году), а затем не запускается на другом (продолжение примера 2003)

Единственная проблема, которую мне пришлось исправить, - это изменение последней части DoCmd.OpenForm ,,,,, acFormReadOnly (или acReadOnly, в зависимости от того, как машина чувствует себя в этот конкретный день - да, это будет работать с одним, одним днем, а затем хотите, чтобы я переключил его на другой), чтобы просто заблокировать отдельные текстовые поля

Возможно, это не совсем кодирование, но я думаю, что это можно исправить кодированием.

Надеюсь, этого достаточно, чтобы кто-то что-то придумал.

Ответы [ 3 ]

1 голос
/ 16 сентября 2008

Официальная позиция Microsoft заключается в том, что установка нескольких офисных версий на одном компьютере не поддерживается и не рекомендуется, и Access 2007, похоже, призван доказать это нам!

Тем не менее, вы можете избежать большинства проблем, выполнив следующие действия:

1 - Разделение базы данных на заднюю часть и переднюю часть. Поместите серверную часть (таблицы и отношения) в сетевую папку и поместите копию интерфейса (все остальные объекты) на рабочий стол каждого пользователя.

2 - Лучше сделать внешний интерфейс mde, чтобы ссылки не перемешивались при каждом открытии БД в другой версии Access.

3 - Создайте ярлык, чтобы открыть интерфейс с требуемой версией Access, чтобы всегда открывался с этой версией. (И не забывайте использовать ярлык!) В назначении ярлыка:

"путь к Access 12 msaccess.exe" "путь к db.mdb"

0 голосов
/ 16 сентября 2008

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

Если база данных создана в Access 2003, скомпилирована в .MDE, а затем развернута на отдельном экземпляре Windows, на котором выполняется Access 2007, у вас не должно быть никаких серьезных проблем (кроме изменений пользовательского интерфейса, таких как пользовательские панели инструментов, добавляемые в Лента надстроек).

Для тестирования на нескольких версиях Access вам потребуется некоторая форма изоляции между каждой версией. Я использую несколько виртуальных машин для достижения этой цели. Моя основная Windows VM работает под управлением Office 2007 и IE7, и у меня есть вторая виртуальная машина с Office 2003 и IE6 для тестирования.

Обратите внимание, что если вы хотите просто использовать Word, Excel и Outlook 2007 с Access 2003, вы можете сначала установить Access 2003, а затем выполнить выборочную установку Office 2007 и отменить выбор Access 2007.

0 голосов
/ 16 сентября 2008

У нас есть приложение MS-Acces, разработанное с помощью Access 2003 и используемое как в полной, так и во время выполнения версиях Access 2003 и Access 2007 (Access 2007 Runtime является бесплатным, мы его очень хорошо используем!). Нет особой проблемы, кроме управления ссылками. Наш код анализирует версию Office, установленную на компьютере, и автоматически обновляет соответствующие ссылки (не только Access, но также Excel, Outlook, Word и т. Д.: Код очень сложный, но представляет большой интерес!)

Насколько мне известно, ни один из основных объектов, свойств или методов, доступных в Office 2003 / VBA, не был объявлен устаревшим в Office 2007. Код Office 2003 будет работать с Access 2007, как только эти ссылки будут решены. Некоторые новые объекты были введены в Office 2007, поэтому я бы не советовал ни одному разработчику использовать его для разработки кода для дальнейшего использования с Access 2003.

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

...