Erişim projemde Asynchronous HTTP Request Class kullanıyorum. Yazar sadece GET
ekledi. Bu yüzden sınıfa POST
işlevselliğini eklemeyi deniyorum.MS Access'te Eşzamansız HTTP POST İsteği
benim formda aşağıdaki kodu dava ediyorum, yukarıdaki alt çağıran zaman Class
Public Sub PostRequest(serviceURL As Variant, Optional apiBody As String)
On Error GoTo Sub_Err
Set m_oXmlHttp = New MSXML2.XMLHTTP60
m_oXmlHttp.Open "POST", serviceURL, True
'this sets the onreadystatechange call back to an instance of this object
'which causes the default method HandleResponse to be called when the ready
'state changes
m_oXmlHttp.onreadystatechange = Me
m_oXmlHttp.send apiBody
'Error Catching
Sub_Exit:
Exit Sub
Sub_Err:
MsgBox Error$
Resume Sub_Exit
End Sub
eklenen aşağıdaki kodu.
Private WithEvents oAHlogin As clsAsyncHTTP
Private Sub PostLoginData()
Dim apiURL, apiBody As String
apiURL = "myurl"
apiBody = "mybody"
Set oAHlogin = New clsAsyncHTTP
oAHlogin.PostRequest apiURL, apiBody '*This is where the execution stops*.
End Sub
Private Sub oAHlogin_ResponseReady(ByVal ready As Boolean)
If ready Then
Debug.Print oAHlogin.GetReponseText
End If
End Sub
I yürütme burada durur Bu belirtmiştik hattı, yukarıya bakınız. Herhangi bir yardım takdir edilir. Programlamaya nispeten yeniyim. Yanlış çağı mı arıyorum? Parantez eksik mi?
Sınıfın yazarı tarafından gösterildiği gibi GET
doğru şekilde çalıştırabildim. Eklediğim POST
,
düzenleme 1 çalışmaz: kopya olarak Q hale Gord Thompson'a Cevap: Question # 1463635 ASP içindir, ben tamamen farklı şeylerdir VBA Erişim için soruyorum.
Edit 2: Access projemde aşağıdaki başvuruları ekledim.
* "Soru # 1463635 ASP içindir, VBA'da Access'i tamamen farklı şeyler istiyorum." * - Hayır, değiller. VBScript, VBA ve VB6, farklı olduklarından çok daha benzerdir. Diğer yanıtta (http://stackoverflow.com/a/1463700/2144390) temel yaklaşım Access VBA ile çalışır; Bu soruyu çift olarak işaretlemeden önce test ettim. –
@GordThompson, MS Access'teki cevabı test ettiğiniz için teşekkür ederiz. Ben de aynısını kullanmayı denedim. Hata alıyorum ** Değişken bulunamadı ** satırında Server.CreateObject ("MSXML2.ServerXMLHTTP.6.0") '. Benim Soru –
içinde referansların ekran görüntüsü eklediniz Sadece 'Server.CreateObject' yerine' CreateObject' kullanın. –