![이 VBA 데이터 가져오기 기능이 Access에서 중단되는 이유는 무엇입니까?](https://rvso.com/image/1671466/%EC%9D%B4%20VBA%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0%20%EA%B8%B0%EB%8A%A5%EC%9D%B4%20Access%EC%97%90%EC%84%9C%20%EC%A4%91%EB%8B%A8%EB%90%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
VBA에는 이 함수가 있는데, 이전에 Excel에서 URL에서 데이터를 가져오는 데 성공적으로 사용한 적이 있습니다.
'========================================================
Public Function sURLfetch(ByVal sURL As String) As String
'========================================================
' Return data found at a URL.
' From "www.MyExcelGenius.com/getting-data-from-a-website-in-json-format-using-vba/".
' Requires reference "Microsoft XML, v6.0".
Const bRunAsynch As Boolean = True
Const nProcessComplete As Integer = 4
Dim oRequest As MSXML2.XMLHTTP60
Set oRequest = New MSXML2.XMLHTTP60
Dim sResponse As String
With oRequest
.Open "get", sURL, bRunAsynch
.setRequestHeader "Content-Type", "application/json"
.send
Do While oRequest.ReadyState <> nProcessComplete
DoEvents
Loop
sResponse = .responseText
End With
sURLfetch = sResponse
'========================================================
End Function ' sURLfetch()
'========================================================
이제 Access의 쿼리에서 호출하는 다른 함수에서 이 함수를 호출하고 있습니다. 그렇게 하면 이 함수를 중단 없이 실행하려고 하면 호출이 중단됩니다. 하지만 줄에 중단점을 설정하면 다음과 같습니다.
Do While oRequest.ReadyState <> nProcessComplete
그런 다음 VBA에 계속하라고 지시하면 실행됩니다. 그러나 해당 중단점을 제거하고 해당 줄에 중단점을 설정하면 다음과 같습니다.
sResponse = .responseText
그런 다음 중단됩니다.
따라서 이 함수가 Access에서 호출될 때 루프에 들어가기 전에 중단점에 의해 일시 중지하라는 지시가 없으면 루프에서 정지되는 것처럼 보입니다.
임의의 시간 동안 VBA를 일시 중지하는 함수에 대한 호출을 삽입하여 일시 중지를 자동화하려고 했습니다. 그렇다고 해서 함수가 중단되는 것을 막지는 못했습니다.
요약:
- 이 기능은 과거 Excel에서 작동했습니다.
- 루프 시작 부분의 중단점에 의해 일시 중지되면 Access에서 작동합니다.
- 해당 중단점 없이 Access에서 호출되면 중단됩니다.
이 기능이 Access에서 중단되는 원인은 무엇이며, 이 기능이 작동하도록 하려면 무엇을 변경해야 합니까?