从Access 2007发出SOAP请求

时间:2010-09-21 20:17:43

标签: ms-access soap ms-access-2007

我目前正在使用Microsoft Access 2007中的系统,我需要向外部Web服务器发出SOAP请求以检索某些数据。我是SOAP和Visual Basic的新手,我一直无法弄清楚我需要做些什么才能使SOAP请求发生。

从一些谷歌搜索来看,似乎以前版本的Access可能需要Microsoft的SOAP Toolkit才能发出SOAP请求。然而,据我所知,SOAP Toolkit几年前就被弃用了,所以我很确定这不是我想要的。我是否需要下载外部库才能进行SOAP调用?如果是这样,哪个?如果没有,用于从Access 2007文件进行SOAP调用的VB语法是什么?

2 个答案:

答案 0 :(得分:2)

我不知道是否有更好的方法,而不是通过VBA使用低级Http POST将SOAP消息传递给服务器。您必须通过您选择的任何方法来制作XML SOAP消息。这是一个在VBA中执行Http POST的示例函数。

Function doHttpPost(request As String) As String

    Dim response As String
    Dim http As WinHttp.WinHttpRequest
    Set http = New WinHttp.WinHttpRequest

    On Error GoTo doPostError

    http.setTimeouts 30000, 30000, 30000, 300000

    http.Open "POST", "http://someserver.com/soapListener", False
    http.setRequestHeader "name", "value" 'set any headers you want'

    http.send request

    If http.Status <> 200 Then
        MsgBox "An error has occurred with your request. " & vbCrLf & "The error message is: " & http.responseText & vbCrLf & http.Status & " " & http.statusText
        Exit Function
    End If

    doHttpPost = http.responseText
    Exit Function

doPostError:
    'process error messages here'

End Function

答案 1 :(得分:1)

您应该使用自己喜欢的.NET语言来创建Access可以调用的COM组件。该组件应使用标准.NET机制(“添加服务引用”)来调用Web服务。

在任何情况下都不应使用非常过时的SOAP Toolkit。