Verbindung zum web service in MS-Access mit VBA
Ist es möglich, eine Verbindung zu einem web service (zum Beispiel das senden einer HTTP-Anfrage) via VBA in Microsoft Access?
Zum Beispiel, der Benutzer klickt auf eine Schaltfläche auf einem Formular, dann eine HTTP-Anfrage an einen web service, der reagiert, mit OK
.
Hat jemand das schon gemacht?
Hinweis: VBA, nicht VB.NET.
- Wie in msdn.microsoft.com/en-us/library/office/...? BTW, MS Access mit VBA, nicht VB.Net
- Genau, danke! Ich habe immer gesucht VB.net das war der Grund, warum ich nicht nichts gefunden...
- Eine weitere mögliche Lösung ist, erstellen Sie ein COM-Objekt in vb.net konsumiert und kommuniziert mit dem web-Dienst, und anschließend legen Sie einen Verweis auf die vb.net. Ich denke, die vorgeschlagenen XMLHttp Beispiel ist wahrscheinlich das beste, aber wenn Sie haben einige bekannte mit vb.net, dann werden Sie finden, es erzeugt das class-Objekt mit einem guten Maß an Leichtigkeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist der code, den ich verwendet habe, ziemlich erfolgreich mit Access 2003. Es ist aus dem interwebs, kopiert und wieder kopiert Alter vor. Es schafft eine XMLHttpRequest-Objekt, sendet eine HTTP GET-Anforderung, und gibt das Ergebnis als string zurück.
sReq ist die URL, die; die Funktion gibt die Antwort. Sie müssen möglicherweise stellen Sie sicher, dass ActiveX Data Objects aktiviert sind, unter die Verweise (im VBA-editor, gehen Sie zu Extras > Referenzen).
Dies ist der code , die ich verwendet habe. Sie müssen zuerst Verweis Microsoft XML V6 für diesen code.
Benutzt habe ich den "Microsoft Office 2003 Web Services Toolkit 2.01" toolkit (verfügbar hier) auf ein paar wenige Projekte. Es funktionierte ziemlich gut für mich, obwohl ich schrieb auch die web services, die es Sprach, so hatte ich den Luxus, in der Lage zu hantieren, die mit beiden enden des Prozesses, wenn immer es, um tatsächlich zu arbeiten. 🙂
In der Tat, ich nur ein Upgrade eines dieser apps aus Access_2003 zu Access_2010 und das SOAP-client-Teil der app weiter arbeiten, ohne änderung. Aber ich habe Begegnung eine Falte während der pre-deployment-testing:
Meine app würde nicht kompilieren, die auf einer 64-bit Maschine mit 32-bit-Office_2010, weil es nicht wie die frühe Bindung der
SoapClient30
Objekt. Wenn ich eingeschaltet, um die Verwendung der späten Bindung, für das Objekt den code kompilieren würde, aber es hat nicht funktioniert. So, für die jeweilige app, die ich hatte, um eine Einschränkung, die 64-bit-Maschinen benötigt, um ausgeführt werden 64-bit-Office.Beachten Sie außerdem, dass Microsoft die offizielle position ist, dass "Alle SOAP Toolkits wurden ersetzt durch Microsoft .NET-Framework." (ref. hier).