HugoMuller
asked on
Http post using MS-Access and VBA
I'm writing an Access application that is using a webrelay. A webrelay is a device which can switch electrical equipment on- and off and has it's own build in webserver.
I can control this device with my browser using the following URL:
http://192.168.1.200/?OUT1=ON
Now I would like to post the same URL when I click a button on a MS-Access form.
Please send me some sample code !
I can control this device with my browser using the following URL:
http://192.168.1.200/?OUT1=ON
Now I would like to post the same URL when I click a button on a MS-Access form.
Please send me some sample code !
Below is some code that uses the Microsoft XML 6. Library to sent a HTTP POST request.
Jim.
' Capture the CC
' Set the correct URL
'strPostURL = "https://test.authorize.net/gateway/transact.dll"
110 strPostURL = "https://secure.authorize.net/gateway/transact.dll"
'strPostURL = "https://developer.authorize.net/tools/paramdump/index.php"
120 strPostSting = ""
125 strPostSting = strPostSting & "x_login=" & URLEncode(strAPILogin) & "&"
126 strPostSting = strPostSting & "x_tran_key=" & URLEncode(strTransactionKe y) & "&"
'For debugging.
'strPostSting = strPostSting & "x_test_request=" & URLEncode("TRUE") & "&"
130 strPostSting = strPostSting & "x_version=" & URLEncode("3.1") & "&"
140 strPostSting = strPostSting & "x_delim_data=" & URLEncode("TRUE") & "&"
150 strPostSting = strPostSting & "x_delim_char=" & URLEncode("|") & "&"
160 strPostSting = strPostSting & "x_relay_response=" & URLEncode("FALSE") & "&"
170 strPostSting = strPostSting & "x_email_customer=" & URLEncode("FALSE") & "&"
180 strPostSting = strPostSting & "x_type=" & URLEncode("PRIOR_AUTH_CAPT URE") & "&"
190 strPostSting = strPostSting & "x_trans_id=" & URLEncode(rs!CCTransaction ID) & "&"
' Additional fields can be added here as outlined in the AIM integration
' guide at: http://developer.authorize.net
200 strPostSting = left(strPostSting, Len(strPostSting) - 1)
' We use xmlHTTP to submit the input values and record the response
Dim objRequest As New MSXML2.XMLHTTP
210 objRequest.Open "POST", strPostURL, False
220 objRequest.Send strPostSting
230 strPostResponse = objRequest.responseText
'Debug.Print strPostResponse
240 Set objRequest = Nothing
' the response string is broken into an array using the specified delimiting character
250 arrResponse = Split(strPostResponse, "|", -1)
260 If arrResponse(0) = 1 Then
Jim.
' Capture the CC
' Set the correct URL
'strPostURL = "https://test.authorize.net/gateway/transact.dll"
110 strPostURL = "https://secure.authorize.net/gateway/transact.dll"
'strPostURL = "https://developer.authorize.net/tools/paramdump/index.php"
120 strPostSting = ""
125 strPostSting = strPostSting & "x_login=" & URLEncode(strAPILogin) & "&"
126 strPostSting = strPostSting & "x_tran_key=" & URLEncode(strTransactionKe
'For debugging.
'strPostSting = strPostSting & "x_test_request=" & URLEncode("TRUE") & "&"
130 strPostSting = strPostSting & "x_version=" & URLEncode("3.1") & "&"
140 strPostSting = strPostSting & "x_delim_data=" & URLEncode("TRUE") & "&"
150 strPostSting = strPostSting & "x_delim_char=" & URLEncode("|") & "&"
160 strPostSting = strPostSting & "x_relay_response=" & URLEncode("FALSE") & "&"
170 strPostSting = strPostSting & "x_email_customer=" & URLEncode("FALSE") & "&"
180 strPostSting = strPostSting & "x_type=" & URLEncode("PRIOR_AUTH_CAPT
190 strPostSting = strPostSting & "x_trans_id=" & URLEncode(rs!CCTransaction
' Additional fields can be added here as outlined in the AIM integration
' guide at: http://developer.authorize.net
200 strPostSting = left(strPostSting, Len(strPostSting) - 1)
' We use xmlHTTP to submit the input values and record the response
Dim objRequest As New MSXML2.XMLHTTP
210 objRequest.Open "POST", strPostURL, False
220 objRequest.Send strPostSting
230 strPostResponse = objRequest.responseText
'Debug.Print strPostResponse
240 Set objRequest = Nothing
' the response string is broken into an array using the specified delimiting character
250 arrResponse = Split(strPostResponse, "|", -1)
260 If arrResponse(0) = 1 Then
URLEncode() BTW is:
Public Function URLEncode(xxx As String) As String
URLEncode = Replace(xxx, " ", "%20")
End Function
Jim.
Public Function URLEncode(xxx As String) As String
URLEncode = Replace(xxx, " ", "%20")
End Function
Jim.
You can give this a try:
If you are using a toggle button on your form
If you are using a toggle button on your form
Private Sub tglOnOff_AfterUpdate()
Dim ie As Object
'switch webrelay device on or off
Set ie = New InternetExplorer
ie.Navigate "http://192.168.1.200/?OUT1=" & IIf(Me.Toggle15, "ON", "OFF")
While ie.Busy = True: DoEvents: Wend
While ie.Busy = True: DoEvents: Wend
ie.Quit
Set ie = Nothing
End Sub
If you are using 2 separate buttons for ON and OFF
Private Sub btnSwitchOn_Click()
Dim ie As Object
'switch webrelay device on
Set ie = New InternetExplorer
ie.Navigate "http://192.168.1.200/?OUT1=ON"
While ie.Busy = True: DoEvents: Wend
While ie.Busy = True: DoEvents: Wend
ie.Quit
Set ie = Nothing
End Sub
Private Sub btnSwitchOff_Click()
Dim ie As Object
'switch webrelay device off
Set ie = New InternetExplorer
ie.Navigate "http://192.168.1.200/?OUT1=OFF"
While ie.Busy = True: DoEvents: Wend
While ie.Busy = True: DoEvents: Wend
ie.Quit
Set ie = Nothing
End Sub
Ron
ASKER
Hi Ron,
I like simple solutions so I think you;ll get the points.
One question: why do you repeat the While Wend line. Is there a specific reason ?
Cheers, Hugo
I like simple solutions so I think you;ll get the points.
One question: why do you repeat the While Wend line. Is there a specific reason ?
Cheers, Hugo
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hugo,
I'm not sure if you're aware of the criteria for grading. You would normally assign a B grade if you had to do a good amount of extra work on your own because the answer presented was lacking. You are also expected to provide an explanation on grades of B or C.
If you were still having difficulties with a provided solution, you could have followed it up here until you were satisfied.
Here's a link explaining the Grading criteria: http://support.experts-exc hange.com/ customer/p ortal/arti cles/48141 9-what-gra de-should- i-award-?b _id=44
Ron
I'm not sure if you're aware of the criteria for grading. You would normally assign a B grade if you had to do a good amount of extra work on your own because the answer presented was lacking. You are also expected to provide an explanation on grades of B or C.
If you were still having difficulties with a provided solution, you could have followed it up here until you were satisfied.
Here's a link explaining the Grading criteria: http://support.experts-exc
Ron
pls try
Open in new window
regards