Почему не работает это тестовое приложение VBA application.importXML из 3 строк? - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь понять Application.ImportXML для импорта XML-файла в таблицу MS Access.

Насколько я понимаю, если я укажу XML-файл, он создаст таблицу, определит поля и импортируетданные в эти поля.

Первый вопрос: это правильное понимание?

Когда я внедряю простую тестовую программу, я получаю сообщение об ошибке, которое не могу решить самостоятельно.

ВотXML-файл, который я использую:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EmpDetails>
<Employee>
<Name>ABC</Name>
<Dept>IT-Software</Dept>
<Location>New Delhi</Location>
</Employee>
<Employee>
<Name>XYZ</Name>
<Dept>IT-Software</Dept>
<Location>Chennai</Location>
</Employee>
<Employee>
<Name>IJK</Name>
<Dept>HR Operations</Dept>
<Location>Bangalore</Location>
</Employee>
</EmpDetails>

И вот код, который я использую в Microsoft Access 2016:

Function XMLtoTable()

    Set objAccess = CreateObject("Access.Application")

    x = objAccess.ImportXML("C:\Users\Mark\Documents\Projects\XML into ENEX\employee.xml", 1)

    MsgBox ("done")

End Function

И сообщение об ошибке, которое я получаю:

enter image description here

Когда я нажимаю Debug, эта строка подсвечивается:

x = objAccess.ImportXML("C:\Users\Mark\Documents\Projects\XML into ENEX\employee.xml", 1)

Поскольку это такая базовая программа, я понятия не имею, куда идтиздесь?

У меня есть ссылка Microsoft XML 3.0 включена.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 24 сентября 2018

Метод ImportXML ничего не возвращает, поэтому вы должны удалить x= с начала строки, вызывающей метод.(А также удалите скобки вокруг пути к файлу.)

Затем, поскольку вы, кажется, вызываете это из другого приложения, вам нужно открыть базу данных , к которой вы хотите добавитьXML.В настоящее время нет базы данных, поэтому XML не может быть импортирован.Примерно так:

Dim objAccess As Access.Application
Set objAccess = GetObject("C:\path\database name.mdb")    
'objAccess.Visible = True
objAccess.ImportXML "C:\Test\XML into ENEX\employee.xml", acAppendData
'objAccess.UserControl = True

Когда я это делаю, Access без проблем импортирует показанный вами XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...