Позднее связывание преобразования для синтаксиса импорта XML - PullRequest
0 голосов
/ 05 мая 2011

У меня есть приложение Access, которое на самом деле является просто сервером автоматизации для нескольких офисных приложений (Word, Excel, Ppt и Outlook), принимает импортированную информацию, собирает ее через формы и создает все виды файлов.

Он не используется в качестве базы данных в традиционном смысле, скорее, удаленные файловые пользователи используют в поле для всех приемов автоматизации, а затем отбрасывают, когда у них есть все созданные файлы, тогда необходимые.

Совсем недавно, так что люди здесь помогли мне с переходом на позднюю привязку, чтобы спасти меня от ссылок на целевую систему, убивающих функциональность.Работает отлично!

Итак, теперь у меня есть код импорта xml, для работы которого необходимо установить xml v5.Теперь проблема, с которой я столкнулся раньше, заключалась в том, что ссылки на библиотеки объектов Excel, Powerpoint и Outlook менялись с офисной версии на версию (2003 = 11.0, 2007 - 12.0 и т. Д.), Но мне интересно, возникнет ли у меня такая же проблема.Чтобы усложнить ситуацию, я понятия не имею, был ли сервер / операционная система, на которой он может работать (XP, Vista, 2003, 2008 SP2 и т. Д.).Честно говоря, я не знаю, будет ли это иметь значение, поэтому я упоминаю об этом.

Итак, если это действительно создаст проблему, то у кого-нибудь есть пример преобразования с поздним связыванием для объявлений дляэтот?Кажется, это не то же самое, что создание и офисное приложение ...

Sub PullingDataFromNodes()
   dim xmlDoc as MSXML2.DOMDocument50
   dim xmlNodeList As MSXML2.IXMLDOMNodeList
   dim myNode as MSXML2.IXMLDOMNode

   Set xmldoc = New MSXML2.DOMDocument50
   xmldoc.async = False
   xmldoc.Load ("C:/SomeFolder/xml.xml")

   Set xmlNodeList = xmldoc.SelectNodes("//DataFieldNode")
   Set myNode = xmlNodeList.item(0)

   'etc...more of the same....pull data from node, place data into variable, then place 
   '  data in variable into recordset, use it to update table kind of thing

Так что я попытался использовать CreateObject с этим, и он, похоже, не работает .... может кто-нибудь предложитьи совет с этим?

Я использую xmlImport, когда могу с argus .... но это конкретное решение для данных предоставляется через веб-приложение, для которого они не встраивают схему, и я неесть таблица стилей или .xsd

1 Ответ

1 голос
/ 06 мая 2011

У меня был похожий код, который использует MSXML2.DOMDocument.3.0, поэтому я переключил его на 5, и он все еще работает. Я не знаю о разных версиях. Я могу только предложить вам попробовать это так и посмотреть, что произойдет.

Sub PullingDataFromNodes()
   dim xmlDoc As Object
   dim xmlNodeList As Object
   dim myNode As Object

   Set xmldoc = CreateObject("MSXML2.DOMDocument.5.0")
   xmldoc.async = False
   xmldoc.Load "C:/SomeFolder/xml.xml"

   Set xmlNodeList = xmldoc.SelectNodes("//DataFieldNode")
   Set myNode = xmlNodeList.item(0)
...