alexander2
Goto Top

WebServices mit VBA Bordmitteln nutzen

Grüßt euch,

ich habe ein Projekt auf den Tisch gekriegt mit Access-Frontend(VBA) einen Webservice anzusprechen.
Mit Webservices selber habe ich mich noch gar nicht beschäftigt, bevor ich da aber Zeit investiere müsste
ich erst mal in Erfahrung bringen ob das mit VBA Bordmitteln überhaupt geht.

Die meisten google-Einträge führen mich zu VisualStudio und .NET oder C#Klassen die eingebunden werden müssen
um dann mit Hilfe eines WCF-Clients diese Webservices anzusprechen.

Nur einen Code-Schnipsel in Sachen VBA habe ich im Netz gefunden:

sub ws()

Dim objRequest As Object
Dim strUrl As String
Dim blnAsync As Boolean
Dim strResponse As String

Set objRequest = CreateObject("MSXML2.XMLHTTP")
strUrl = "https://hosting.server.de/virtuell/modul/REST-API/irgendeinwebservice"
blnAsync = True

With objRequest
.Open "GET", strUrl, blnAsync
.SetRequestHeader "Content-Type", "application/json"
.Send
While objRequest.ReadyState <> 4
DoEvents
Wend
strResponse = .ResponseText
End With

MsgBox strResponse

end sub

Bin ich da auf das richtige gestoßen, also das ich am Ende den Inhalt von strResponse nach dem "durch parse"
was ich aus dem Webservice abrufen wollte und mit SetRequestHeader das an Parametern hochlade was der webservice für die
Ausführung eines bestimmten Befehls benötigt ?

Oder liege ich hier völlig falsch ?

Danke für Tipps.

Content-Key: 451731

Url: https://administrator.de/contentid/451731

Printed on: April 19, 2024 at 10:04 o'clock

Mitglied: 139708
Solution 139708 May 15, 2019 updated at 14:28:31 (UTC)
Goto Top
Moin.
Zitat von @Alexander2:
ich erst mal in Erfahrung bringen ob das mit VBA Bordmitteln überhaupt geht.
Ja. Eine Webservice-Anfrage ist ja nichts anderes als ein einfacher POST oder GET Webrequest.
Bin ich da auf das richtige gestoßen, also das ich am Ende den Inhalt von strResponse nach dem "durch parse"
Joa. Überlichweise indem man die Response anschließend in ein XML-Object lädt das man vernünftig benutzen kann ohne mit Regex hantieren zu müssen.
was ich aus dem Webservice abrufen wollte und mit SetRequestHeader das an Parametern hochlade was der webservice für die
Damit lädst du in dem Sinne eigentlich nichts hoch sondern passt hiermit den Request Header an der in der Anfrage an den Webserver gesendet wird. Die eigentliche Anfrage wird als Parameter an die .Send Methode übergeben.
Was dein Webservice an Daten erwartet kann vielfältig sein normalweise geschieht das über SOAP-Messages, siehe das Beispiel hier:
http://www.herber.de/forum/archiv/1476to1480/1478245_VBA__Webservices_S ...

Würde bei sowas würde ich persönlich gleich zu Powershell greifen, da ist das ein Einzeiler, ist aber Geschmackssache.

Gruß wireguard
Member: Alexander2
Alexander2 May 16, 2019 at 06:28:47 (UTC)
Goto Top
1000 Dank, ich bin auf dem richtigen Weg face-smile