Access: изменен справочник DAO, в результате чего .mde не запускается в Access 14 (2010) на Win7 - PullRequest
1 голос
/ 26 января 2011

2 февраля 2011: Я начал эту тему под впечатлением, что моя ветка M $ technet об этом мертва.Но есть новый пост на эту тему, пожалуйста, посмотрите на него: http://social.technet.microsoft.com/Forums/en-US/officeitpro/thread/56e098b9-210b-4afe-8531-c526fb3e4464 1 . Не решение, а подтверждение того, что комбинация7, 14 и mde имеет решающее значение.

- Исходное сообщение:

Поскольку у нас все еще есть клиенты, использующие Office 9 (2000), мы развертываем наш веб-интерфейс в формате файла .mde (база данныхформат Access 2000) для всех версий Access с 9 по 14 (2010 г.) вместо «компиляции» .mde для более старых и .accde для более новых версий Access. Из-за их экономического положения мы часто находим смесь всех Office и Windowsверсий на рабочих станциях наших клиентов в одной компании, поэтому наш ответ - наименьшая вероятность. Это не было проблемой с .mde до Office 14 в сочетании с Windows 7. Я проанализировал все достаточно, чтобы убедиться, что теперь есть воспроизводимая проблема с.mde запускается в Access 14 в сочетании с Windows 7 - Access 14 на XP будет работать.

У нас есть несколько ссылок в нашем проекте VBA, среди которых Woи DAO.Слово исх.работает на всех версиях Access с 9 по 14 без проблем, он автоматически найдет подходящую версию, так как guid одинаков с Office 9 до 14. Между Office 12 (2007) и 14 (2010) M $ изменил не только файл DLLназвание для DAO, но, что важно в моем понимании, ссылочный GUID.Обнаружение Access обнаружит, что новая версия DAO потерпит неудачу в Access 14 под Windows 7, но только с .mde, .mdb, .accdb и .accde запустится без проблем, и .mde запустится в Access14 под ХР, как уже упоминалось.Так что это комбинация измененного GUID и права системы на ... что делать?Найти файл, отсканировать реестр для получения необходимой информации?

Я предполагаю, что для этого не будет одно-двухэтапного "трюка", но я был бы благодарен за подсказки, что проверить в Windows 7,или даже, как изменить наш код VBA, чтобы избавиться от этой проблемы.Что касается последнего варианта: у нас есть много, много явных Dim ... как DAO .... в нашем коде.

Ответы [ 2 ]

0 голосов
/ 29 января 2011

Я удивлен, что ссылка Word на конкретную версию исправит себя.Я всегда использую позднюю привязку с чем угодно, кроме стандартных ссылок доступа 3, Access, VBA и DAO.

DAO может быть проблемой в определенных ситуациях, и одна из них, если у вас есть несколько версий Accessустановлен на машине, где вы компилируете MDE или в производственной среде.Неполная перерегистрация Access может привести к ее поломке, даже если она зарегистрирована как основная версия Access.Полный запуск установки (или восстановление установки Office) должен исправить это.

Что касается других соображений, см. статью Майкла Каплана на тему ссылок .Он затрагивает вопросы регистрации в DAO и, в частности, упоминает случай, когда DAO не работает, но IsBroken возвращает False.То, что он говорит там, может дать вам некоторые идеи относительно некоторых подходов к проблеме.

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

0 голосов
/ 28 января 2011

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

Sub ViewMoreReferenceDetails()

Dim refIDE As Object

    For Each refIDE In Access.Application.VBE.ActiveVBProject.References
        If refIDE.IsBroken = True Then
            Debug.Print "Broken, GUID - " & refIDE.Guid
        Else
            Debug.Print refIDE.Description & " - " & refIDE.Name & " - " & _
                refIDE.Major & "." & refIDE.Minor & vbCrLf & _
                "       Location - " & refIDE.FullPath
        End If
    Next refIDE

End Sub
...