Udtræk automatisk daglige valutakurser fra Nationalbanken
Allerede i 2014 arbejdede jeg med dette emne herDet virkede op til nu hvor mit internet er blevet sat til fast IP adresse
Nu virker det ikke mere
Kan i hjælpe
Const url ="https://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesXML?lang=da"
Dim newValues, fldVArr, I, Valuta As String, Kurs As Single, ValutaId As Long
newValues = Split(csvvaluesOfXML(url), vbCrLf) ' <==== Se nedenfor
If Not IsEmpty(newValues) Then
For I = 1 To UBound(newValues) - 1
fldVArr = Split(newValues(I), ",")
Valuta = fldVArr(0)
'Navn = fldVArr(1)
Kurs = Replace(fldVArr(2), ".", ",")
Select Case Valuta
Case "USD", "EUR", "GBP", "CNY", "JPY", "SEK", "NOK", "CHF", "HKD", "PLN"
ValutaId = Nz(DLookup("ValutaId", "Valuta", "Valuta = '" & Valuta & "'"), 0)
If ValutaId > 0 Then
CurrentDb.Execute "UPDATE Valuta SET Kurs='" & Kurs & "' WHERE ValutaId =" & Nz(ValutaId, 0) & ";"
End If
End Select
Next
End If
Function csvvaluesOfXML(url)
'MSXML2.DOMDocument60
Dim domIn As DOMDocument60, domStylesheet As DOMDocument60
Set domIn = New DOMDocument60
If domIn.loadXML(xmlresponseText(url)) Then '<= Se nedenfor
Set domStylesheet = New DOMDocument60
If domStylesheet.loadXML(blob2string(1)) Then
csvvaluesOfXML = domIn.transformNode(domStylesheet)
Else
xmlParsedError domStylesheet: End If
Else
xmlParsedError domIn: End If
Set domStylesheet = Nothing
Set domIn = Nothing
End Function
Function xmlresponseText(url, Optional method = "GET")
Dim xhr
Set xhr = CreateObject("Microsoft.XMLHTTP")
xhr.Open method, url, False
xhr.Send
If xhr.Status = 200 Then
xmlresponseText = byteArr2string(xhr.responseBody) ' <==Se nedenfor
Else
Err.Raise 10000, , "network or site server error" '<== Går til fejl HER
End If
Set xhr = Nothing
End Function
Function byteArr2string(bArr, Optional charset = "iso-8859-1")
With New ADODB.Stream
.Type = adTypeBinary
.Open
.Write bArr
.Position = 0
.Type = adTypeText
.charset = charset
byteArr2string = .ReadText
End With
End Function