Я хочу загрузить курсы обмена с этого сайта на еженедельной основе с помощью VBA Я очень новичок в XML и оглядывался вокруг обмена стеками и видел несколько реализаций, которые используют форма (я хочу, чтобы избежать этого метода)Использование VBA для импорта XML-сайта в Access
Я пытался импортировать его с помощью мастера MS Access, но все поля в таблицах, являются пустыми
Я хотел бы осуществить эти действия, если возможные
- Загрузить XML с веб-страницы http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
- шлейфом через XML и поместить валюту и курс обмена в любой новой или существующей таблице
две колонки В настоящее время у меня есть код, приведенный ниже. Но его, очевидно, вместе взятые на основе других народов работать и больше шаблон отрабатывать, чем все остальное Может кто-нибудь мне точку в правильном направлении
Sub Test()
'**********************************************************
' DOWNLOAD XML DATA
' ref: http://stackoverflow.com/questions/7091162/access-vba-how-to-download-xml-file- and-enter-its-data-into-a-recordset
'**********************************************************
Dim obj As MSXML2.ServerXMLHTTP
Set obj = New MSXML2.ServerXMLHTTP
obj.Open "GET", "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml", False
'in case you are sending a form *POST* or XML data to a SOAP server set content type
obj.setRequestHeader "Content-Type", "text/xml"
obj.send
Dim status As Integer
status = obj.status
If status >= 400 And status <= 599 Then
Debug.Print "Error Occurred : " & obj.status & " - " & obj.statusText
End If
'**********************************************************
'CREATE XML DOM DOCUMENT
'**********************************************************
Dim xmlDoc As MSXML2.DOMDocument
Dim xmlElement As MSXML2.IXMLDOMElement
Dim xmlNode As MSXML2.IXMLDOMElement
Set xmlDoc = New MSXML2.DOMDocument
xmlDoc.loadXML (obj.responseText)
'**********************************************************
'ACCESS ROWS
'http://stackoverflow.com/questions/11305/how-to-parse-xml-in-vba
'**********************************************************
Dim point As IXMLDOMNode
Set point = xmlDoc.firstChild
Debug.Print point.selectSingleNode("subject").Text
End Sub
Вы можете упростить начало этой задачи, загрузив «DOMDocument» непосредственно из URL вместо того, чтобы сначала извлекать XML-данные, а затем загружать этот XML-документ в документ. Сделайте это: 'xmlDoc.async = False' И затем это:' xmlDoc.Load "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml" ' – HansUp
Спасибо HansUp, это действительно далеко лучше. У вас есть идея, как извлечь элементы из XMLDOC? –