Недавно я столкнулся с серьезной проблемой при установке MS Office 2007, связанной с Access 2007, которая выдала мне ошибку, сообщающую о том, что не удается правильно ссылаться на объекты данных ActiveX 6.1.
Пытаясь решить эту проблему, я обнаружил, что в установке Office есть две очень похожие папки:
C:\Program Files (x86)\Common Files\System\ado\
C:\Program Files \Common Files\System\ado\
Обе папки имеют очень похожее содержимое, но все файлы немного отличаются по размеру. Здесь хранятся многие из ссылок Access на ActiveX Data Objects.
Я обнаружил, что по умолчанию мой навигатор Access Reference ведет меня в (x86)
папку, а другая папка —нетдоступны для навигации и выбора нужного мне DLL-файла.
Я также обнаружил, что Microsoft никогда не публиковала 64-битную версию Office (сомневаюсь в этой информации), а это значит, что, по-моему, логично, что все файлы находятся в этой (x86)
папке.
Почему существуют две разные папки с практически одинаковыми именами файлов (разного размера) (что подразумевает, что файлы с одинаковыми именами имеют разные коды)?
Означает ли это, что существуют две разные версии ActiveX Data Objects 6.1?
Может ли это означать, что моя проблема заключалась в том, что я не мог сослаться на нужную версию файла?
PS: В конце концов мне пришлось исправить ошибку, запустив команду «Восстановить» с установочного компакт-диска.
решение1
Microsoft предоставляет 32-битную и 64-битную версии компонентов данных ActiveX. Таким образом, разработчики программного обеспечения могут создавать 32-битные и 64-битные программы, которые их используют. Причина, по которой они имеют разные размеры, заключается в том, что указатели памяти 32-битной и 64-битной памяти имеют разные размеры. (Обычно это означает, что 64-битные версии будут больше, но это не всегда так, поскольку 64-битные процессоры также имеют множество оптимизаций, чтобы заставить определенные типы кода работать с использованием более простого двоичного/ассемблированного кода.)
Ваше предположение, что эти компоненты были установлены вместе с Office, неверно. ADO является частью пакета "Microsoft Data Access Components" (MDAC), который на самом деле является частью операционной системы. Вот почему номер версии 6.1 совпадает с номером версии Windows для Windows 7, который также является 6.1.
Причина, по которой ваша версия Microsoft Access ведет вас в (x86)
папку, заключается в том, что это 32-битная версия Access, поэтому она может использовать только 32-битные компоненты. Если бы у вас была 64-битная версия Access (которая, вопреки вашему утверждению в вопросе, действительно существует), вы бы могли просматривать компоненты только в не-каталоге (x86)
.
(Тот факт, что вам удалось исправить исходную проблему, запустив восстановление Windows, означает, что у вас возникли проблемы с установкой Windows или, возможно, повреждение в Центре обновления Windows во время его установки. Однако это не имеет абсолютно никакого отношения к наличию этих двух папок.)