Поддержка для Windows Vista Service Pack 1 (SP1) заканчивается 12 июля 2011 г. Чтобы продолжить получать обновления для системы безопасности для Windows, убедитесь, что используется, в Пакет обновления 2 (SP2 для) Windows Vista. Для получения дополнительных сведений посетите веб-страницу Майкрософт:

Исправление, устраняющее подобной проблемы в Windows 7 с пакетом обновления 1 и Windows Server 2008 R2 с пакетом обновления 1, описанное в статье базы знаний Майкрософт 2640696. Сведения о 2640696 КБ, щелкните следующий номер статьи базы знаний Майкрософт:

приложения ADO, которое компилируется в Windows 7 с пакетом обновления 1 или Windows Server 2008 R2 с пакетом обновления 1 не работает в более ранних версиях Windows

Симптомы


Предположим, что у вас есть Microsoft Visual Basic для приложений (VBA) макрос, который правильно работает на 32-разрядной версии приложения Microsoft Office. Тем не менее этот макрос VBA не выполняется в 64-разрядной версии приложения Microsoft Office 2010 в 64-разрядной версии Windows.

Как правило Данная проблема возникает, когда макрос VBA использует некоторые Microsoft ActiveX объектов данных (ADO) API, которые зависят от платформы. Например при запуске макроса VBA, который использует свойство RecordCount объект ADO Recordset выглядит следующим образом:

Dim rs as ADODB.RecordseLONG recordCount


...
recordCount = rs.RecordCount

В этом примере появляется сообщение об ошибке «Несоответствие типов» при запуске этого макроса в 64-разрядной версии приложения Microsoft Office 2010.

Примечания

  • 64-разрядной версии Office 2010 можно установить в следующих операционных системах Windows:

    • 64-разрядных версий Windows Server 2003 Пакет обновления 2, имеющих установки MSXML 6.0

    • x64-выпуски Пакет обновления 1 для Windows Vista и более поздних версий

    • 64-разрядные выпуски Windows Server 2008 и более поздних версий

    • x64 под управлением выпусков Windows 7

    • Windows Server 2008 R2

  • Для просмотра списка интерфейсов API ADO, зависит от используемой платформы, обратитесь к разделу «Дополнительные сведения».

Причина

Некоторые интерфейсы API ADO, зависит от используемой в ADO 2.7 платформы и более поздних версий. На 64-разрядных версиях Windows эти API-интерфейсы ADO обработки аргументов с помощью типа данных 64-разрядные (тип данных LONGLONG ). Однако приложения, использующие эти API-интерфейсы по-прежнему использовать тип данных LONG . Таким образом при попытке запустить макрос появляется сообщение об ошибке «Несоответствие типов».

Дополнительные сведения

Примечания

  • В Windows Vista, Windows Server 2008 или более поздних версий Windows библиотеки типов версии 6.0 ADO и библиотеку типов версии 6.1 ADO используют же идентификатор LIBID библиотеки типов. Visual Basic может отображать только один из них в списке Доступные ссылки одновременно. Вручную найти библиотеку типов версии 6.0 ADO (Msado60.tlb) в данной ситуации, перейдите по следующему адресу: % files\system\ado files%\common программы. Если была добавлена ссылка на библиотеку типов версии 6.0 ADO для текущего проекта в списке Доступные ссылки Visual Basic автоматически отображает тип 6.0 библиотека ADO.

  • Рассмотрим сценарий, в котором разработчики C++ и включить следующую строку кода в приложении:


     #import msado15.dll



    Рассмотрим сценарий, что MSJRO не используется, и перекомпилировать приложение Windows Vista, Windows Server 2008 или более поздних версий Windows. Скомпилированное приложение должно работать в Windows Vista, Windows Server 2008 или более поздних версий Windows. В этом случае необходимо изменить #import msado15.dll следующее:

     #import msado60.tlb


    Рассмотрим ситуацию, что вы используете MSJRO и повторной компиляции приложения, которое должно работать в Windows Vista, Windows Server 2008 или более поздней версии Windows. В этом случае необходимо изменить #import msado15.dll следующее:

     #import msado28.tlb


    Рассмотрим сценарий, выполните повторную компиляцию приложения на Windows XP или Windows Server 2003. Или повторная сборка приложение должно запускаться в Windows XP или Windows Server 2003. В этом случае необходимо изменить #import msado15.dll следующее:

     #import msado28.tlb

  • Если разработчик .NET, C++ или VB6 и применения «Способ 1» в разделе «Временное решение», которое было описано в статье базы знаний Майкрософт 2517589 (это решение было удалено после обновления 2640696), нет необходимости изменять код. Дополнительные сведения о 2517589 КБ щелкните следующий номер статьи базы знаний Майкрософт:

    Приложение ADO не запускается в операционных системах нижнего уровня после повторной компиляции на компьютере под управлением Windows 7 с Пакетом обновления 1 или Windows Server 2008 R2 с Пакетом обновления 1 или с 983246 установки обновления

Решение

Чтобы устранить эту проблему, установите 64-разрядной версии исправления, соответствующий операционной системе, на соответствующем компьютере.






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

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

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

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

Предварительные условия

Не существует предварительных условий для установки этого исправления.

Сведения о реестре

Для использования исправления из этого пакета нет необходимости вносить изменения в реестр.

Необходимость перезагрузки

Может потребоваться перезагрузить компьютер после установки данного исправления.

Сведения о замене исправлений

Это исправление не заменяет ранее выпущенные исправления.

Сведения о файлах

Щелкните здесь, чтобы показать или скрыть подробные сведения

Английский (США) версия или глобальная версия этого исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.

Примечания к сведениям о файле Windows XP и Windows Server 2003

  • Кроме файлов, указанных в приведенных ниже таблицах данное исправление также устанавливает соответствующий файл каталога безопасности (KBномер.cat), подписанный цифровой подписью корпорации Майкрософт.

Для всех поддерживаемых версий Windows XP SP3 на x86

Нужна дополнительная помощь?

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×