1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Private Sub ntva_afterupdate()
If Not Mode_debug Then On Error GoTo err
Dim Sr As String, strURL As String, strEnv As String, xmlhtp As MSXML2.ServerXMLHTTP 'Utilise la Référence Microsoft XML,v3.0
'21.4b controle n° par webservice - https://www.developpez.net/forums/d1612513/logiciels/microsoft-office/access/vba-access/webservice-soap-vies/
102 nTVA = trim(ucase(nTVA))
'creating Enveloppe - we create our SOAP envelope for submission to the Web Service
110 strEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
111 strEnv = strEnv & "<SOAP-ENV:Envelope xmlns:ns0=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"" "
112 strEnv = strEnv & "xmlns:ns1=""http://schemas.xmlsoap.org/soap/envelope/"" "
113 strEnv = strEnv & "xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "
114 strEnv = strEnv & "xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">"
115 strEnv = strEnv & " <SOAP-ENV:Header/> <ns1:Body> <ns0:checkVatApprox>"
116 strEnv = strEnv & " <ns0:countryCode>" & Left(nTVA, 2) & "</ns0:countryCode>"
117 strEnv = strEnv & " <ns0:vatNumber>" & Mid(nTVA, 3) & "</ns0:vatNumber> <ns0:traderName/>"
118 strEnv = strEnv & " <ns0:traderCompanyType/> <ns0:traderStreet/> <ns0:traderPostcode/> <ns0:traderCity/>"
119 strEnv = strEnv & " <ns0:requesterCountryCode>XX</ns0:requesterCountryCode>"
120 strEnv = strEnv & " <ns0:requesterVatNumber>YYYYYYYYYY</ns0:requesterVatNumber>"
121 strEnv = strEnv & " </ns0:checkVatApprox> </ns1:Body></SOAP-ENV:Envelope>"
'The URL address of the wsdl
130 strURL = "http://ec.europa.eu/taxation_customs/vies/services/checkVatService"
132 Set xmlhtp = New MSXML2.ServerXMLHTTP
'Enveloppe created .open http POST
134 xmlhtp.Open "POST", strURL, False
136 xmlhtp.setRequestHeader "Content-Type", "text/xml"
'Sending enveloppe
140 xmlhtp.send strEnv
142 Sr = xmlhtp.responseText
'MsgBox strEnv & vbCr & vbCr & Sr
146 Set xmlhtp = Nothing
150 If InStr(Sr, "<valid>true</valid>") > 1 Then
152 Sr = Mid(Sr, InStr(Sr, "<traderName>") + 12)
154 Sr = Left(Sr, InStr(Sr, "</traderName>") - 1)
156 If MsgBox("Vous avez saisi le n° de TVA de la société " & Sr, vbYesNo, "confirmation") = vbYes Then refresh Else undo
Else
160 MsgBox "N° de TVA inconnu.", vbInformation, "": undo
End If
Exit Sub
err: Call message("Erreur " & err.Number & "/" & Erl & " dans tiers.ntva_AU : " & err.description)
End Sub |
Partager