MSXML2.XMLHTTP envoyer méthode fonctionne avec la liaison anticipée, ne parvient pas à liaison tardive

Le code ci-dessous fonctionne. Mais si je commente la ligne Dim objRequest As MSXML2.XMLHTTP et décommentez la ligne Dim objRequest As Object il échoue avec le message d'erreur :

Le paramètre est incorrect

Pourquoi, et ce que (le cas échéant) puis-je faire à ce sujet?

Public Function GetSessionId(strApiId, strUserName, strPassword) As String

    Dim strPostData As String

    Dim objRequest As MSXML2.XMLHTTP
    'Dim objRequest As Object '

    strPostData = "api_id=" & strApiId & "&user=" & strUserName & "&password=" & strPassword

    Set objRequest = New MSXML2.XMLHTTP
    With objRequest
        .Open "POST", "https://api.clickatell.com/http/auth", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send strPostData
        GetSessionId = .responseText
    End With

End Function

Corey, oui, je sais que je dois faire pour que mon code fonctionne sans une référence à la MSXML bibliothèque de type. Ce n'est pas la question ici. Le code ne fonctionne pas lors de l'utilisation de Dim objRequest As Object indépendamment du fait que j'utilise

Set objRequest = NEW MSXML2.XMLHTTP avec la référence, ou

Set objRequest = CreateObject("MSXML2.XMLHTTP") sans la référence.

OriginalL'auteur Brendan Reynolds | 2008-11-21