通过wsl.exe创建的SOAP请求在VBA(MS Access)中的参数数量错误

时间:2016-12-16 07:56:23

标签: vba ms-access soap wsdl

我使用网络服务wsdl.exe创建了一个C#dll。基于此我创建了一个C#和VB.Net应用程序,它们都检索我期望的数据并给我结果。

调用相同外部dll的VBA代码失败。该dll返回一个具有属性' DataArea'的对象。这是一个对象数组。

Dim response As CustomerPrice.SimulatePriceResponseType
Set response = New CustomerPrice.SimulatePriceResponseType
Set response = CustPriceService.SimulatePrice(st)
Dim bob As String
bob = response.DataArea(0).bookPrice_Value

在C#和VB.Net中,最后一行给出了所需的值。 在VBA中,最后一行表示错误的参数数量或无效的属性分配' 在'立即模式调试'

  • 打印响应按预期提供SimulatePriceResponseType。
  • 打印response.DataArea给出类型不匹配(错误13)
  • 打印response.DataArea(0)提供错误的参数数量(错误450)

任何想法发生了什么以及我可以做些什么来解决它?

1 个答案:

答案 0 :(得分:0)

它似乎与数组有关,或与VBA如何解释它有关,虽然我不确定究竟是什么。

我找到了dll源代码并添加了一个属性,该属性仅返回数组的第一个元素作为PriceData对象,而不是PriceData []数组。

按原样运作