0
Access 2010 32ビットを使用してWindows 10ボックスでスクレイピングソリューションを使用しています IEオブジェクトが何らかの形でNothingにリセットされている問題があります以下のスニペットの17)。 ステップにより、コードのステップを実行している場合は、動作しているようです。 視覚的にエクスプローラウィンドウを検査すると予想されるように見える。 私はここで間違って何をしているのですか?任意のアイデア/提案は非常に感謝しています。VBA Internet Explorerの自動化MS Edgeオブジェクトにアクセスする
Public Function politseiKontroll(dokument As String) As String
Dim ie As Object
Dim element As Object
Dim filenum
Const URL As String = "https://www.politsei.ee/et/teenused/e-paringud/dokumendi-kehtivuse-kontroll/"
Const SIGNATURE = MODULE_NAME & "politseiKontroll"
On Error GoTo ERR_
If Len(Trim(dokument)) = 0 Or Len(Trim(dokument)) > 20 Then
politseiKontroll = "Number on liiga pikk (20 max)"
Exit Function
End If
1 Set ie = CreateObject("InternetExplorer.Application")
2 ie.visible = True
' 2 Prevents the URL from being added to the history list
' 4 Prevents the browser from reading the page from the disk cache
' 8 Prevents the URL from being added to the disk cache
3 ie.Navigate URL, 2 + 4 + 8 ' prevent using page from local cache
4 While ie.Busy And ie.ReadyState <> 4 ' READYSTATE_COMPLETE
5 DoEvents
6 Wend
7 If ie.Document Is Nothing Then
ie.Quit
8 Set ie = Nothing
9 politseiKontroll = "Serveri vastus puudub"
10 End If
11 Set element = ie.Document.getElementsByName("docNumber")
12 If element.length <> 1 Then
13 ie.Quit
14 Set ie = Nothing
15 politseiKontroll = "Serveri vastuse formaat on vale"
16 End If
17 ie.Document.getElementsByName("docNumber")(0).value = dokument
While ie.Busy And ie.ReadyState <> 4 ' READYSTATE_COMPLETE
DoEvents
Wend
18 Set element = ie.Document.getElementsByName("subButton")
19 If element.length <> 1 Then
20 ie.Quit
21 Set ie = Nothing
22 politseiKontroll = "Serveri vastuse formaat on vale"
23 End If
24 ie.Document.getElementsByName("subButton")(0).Click
25 While ie.Busy And ie.ReadyState <> 4
26 DoEvents
27 Wend
28 Stop
29 ie.Quit
30 Set ie = Nothing
31 DoEvents
EXIT_:
32 Exit Function
ERR_:
' Dim eClone As New errClone
' eClone.init err, , erl
If Not ie Is Nothing Then
ie.Quit
Set ie = Nothing
DoEvents
End If
' Set eClone = errorHandler.reportError(eClone, SIGNATURE)
' If eClone.stopExecution Then
Stop
' End If
Resume EXIT_
End Function