Microsoft AccessでVBA を使用してWebサービスに接続できますか(HTTPリクエストを送信するなど) たとえば、ユーザーがフォーム上のボタンをクリックすると、HTTPリクエストがOK
と応答するWebサービスに送信されます。VBAを使用したMS AccessのWebサービスに接続
誰もこれまでに行ったことはありますか?
注:VB.NETではなくVBAです。
Microsoft AccessでVBA を使用してWebサービスに接続できますか(HTTPリクエストを送信するなど) たとえば、ユーザーがフォーム上のボタンをクリックすると、HTTPリクエストがOK
と応答するWebサービスに送信されます。VBAを使用したMS AccessのWebサービスに接続
誰もこれまでに行ったことはありますか?
注:VB.NETではなくVBAです。
これはAccess 2003でよく使用されたコードです。これは、以前にコピーされ、再コピーされたインターウェブからのものです。 XMLHttpRequest Objectを作成し、HTTP GET要求を送信し、結果を文字列として返します。
Public Function http_Resp(ByVal sReq As String) As String
Dim byteData() As Byte
Dim XMLHTTP As Object
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
XMLHTTP.Open "GET", sReq, False
XMLHTTP.send
byteData = XMLHTTP.responseBody
Set XMLHTTP = Nothing
http_Resp = StrConv(byteData, vbUnicode)
End Function
sReqはURLです。関数は応答を返します。参照下にActiveX Data Objectsが有効になっていることを確認する必要があります(VBAエディタで、[ツール]> [参照]に移動します)。
XMLHTTPオブジェクト経由で画像をアップロード/投稿することは可能ですか? – munjal
いくつかのプロジェクトで「Microsoft Office 2003 Web Services Toolkit 2.01」ツールキット(hereが利用可能)を使用しました。私にとってはうまくいっていましたが、私もそれが話していたWebサービスを書いていました。実際に動作させるには、プロセスの両端で手を加えることができて贅沢でした。 :)
実際に、私はAccess_2003からAccess_2010にこれらのアプリケーションの1つをアップグレードしました。そして、アプリケーションのSOAPクライアント部分は修正なしで引き続き動作しました。しかし、私は展開前のテストで1つの皺に遭遇しました:SoapClient30
オブジェクトの初期バインディングが気に入らなかったので、32ビットのOffice_2010を実行している64ビットマシンでアプリケーションがコンパイルされませんでした。私はそのオブジェクトのレイトバインディングを使用するように切り替えると、コードはコンパイルされますが、機能しませんでした。したがって、その特定のアプリケーションでは、64ビットマシンが64ビットOfficeを実行する必要があるという制限を加えなければなりませんでした。
また、Microsoftの公式の立場は、「すべてのSOAPツールキットがMicrosoft .NET Frameworkに置き換えられました」ということです。 (参照番号here)。
これは私が使用したコードです。このコードを動作させるには、まずMicrosoft XML V6を参照する必要があります。
Public Sub GetPerson()
'For API
Dim reader As New XMLHTTP60
reader.Open "GET", "www.exmple.com/users/5428a72c86abcdee98b7e359", False
reader.setRequestHeader "Accept", "application/json"
reader.send
Do Until reader.ReadyState = 4
DoEvents
Loop
If reader.Status = 200 Then
Msgbox (reader.responseText)
Else
MsgBox "Unable to import data."
End If
End Sub
ありがとう...ちょうど3年後;) – Chris
http://msdn.microsoft.com/en-us/library/office/aa140260(v=office.10).aspxと同様ですか? BTW、MS AccessはVB.NetではなくVBAを使用します – Fionnuala
ありがとう、ありがとう!私はいつもVB.netを検索したので、何も見つからなかったのです... – Chris
もう1つの解決策は、Webサービスを消費して通信するCOMオブジェクトをビルドしてから、 vb.netへの参照。私は、提案されたXMLHttpの例はおそらく最高だと思うが、あなたがvb.netに精通していれば、クラスオブジェクトを簡単に生成することができる。 –