Добрый день. Прошу Вашей помощи. В Access сделан ввод XML файла с использованием ADO. В Windows7 все работает замечательно, перешел на Windows8 и получил сообщение: User-defined type not defined. Все настройки в Tools-References абсолютно идентичны. Возможно это как-то связано с правами доступа, которые в 8-ке уж очень ограничены...Хотя я постарался их дать по максимуму.
С уважением
Сергей
Необходимо сжать и перекомпилировать программу (mdb и adp), т.к. Access обращается не только к ссылкам указанным в references, но к другим библиотекам windows, которые в новой версии Windows изменены.
К сожалению не сработало. Сжал базу, а при попытке перекомпиляции сразу опять выдается та же ошибка. Может это как-то связано с тем, что у меня офис 2010 и файл accdb ?
Перед тем как сжать базу данных необходимо написать в VBA код с ошибкой и запустить перекомпиляцию, отладчик должен остановиться на этой ошибке, потом эту ошибку убрать и снова запустить компиляцию. Иногда желательно убрать ссылки на одну или несколько библиотек, а потом все восстановить. Все это гарантирует, что ваш код VBA будет перекомпилирован заново и к нему будут привязаны нужные библиотеки. P.S. В целях экономии ресурсов компьютера, код VBA может и не перекомпилироваться, НО когда мы заранее создаем ошибки, то мы тем самым подсказываем компилятору, что в код внесены изменения и его нужно весь "перепроверить". Иногда бывает лучше даже создать новую ПУСТУЮ базу данных на том компьютере, где необходимо запустить базу. Далее переместить все объекты из старой базы, а потом новую базу перекомпилировать.
Вы раньше правильно подметили, что в Windiws8 используются другие библиотеки. Обнаружил такую вещь: если строку Dim xmlDoc As New DOMDocument заменить на Dim xmlDoc As New DOMDocument60, то эта ошибка исчезает, но появляется другая проблема: "Ссылка на необъявленный префикс пространства имен "cat_ru". Но это просто описание пути к необходимой информации.
Set dnn = xmlDoc.selectNodes("ED_Container/ContainerDoc/DocBody/Inventory/GTDNumber/cat_ru:CustomsCode")
Сама информация, это номер: <cat_ru:CustomsCode>10009131</cat_ru:CustomsCode>
Может в Windows8 путь как-то по другому описывается?