Access VBA Internet Explorer automation MS Edge object disappearing -
i"m working on scraping solution on windows 10 box using access 2010 32 bit. problem ie object somehow reset nothing during execution (error generated on line 17 of below snippet). when running code step step seems work. when visually inspecting explorer window looks expected. doing wrong here ? ideas / suggestions highly appreciated.
public function politseikontroll(dokument string) string dim ie object dim element object dim filenum const url 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 politseikontroll = "number on liiga pikk (20 max)" exit function end if 1 set ie = createobject("internetexplorer.application") 2 ie.visible = true ' 2 prevents url being added history list ' 4 prevents browser reading page disk cache ' 8 prevents url being added disk cache 3 ie.navigate url, 2 + 4 + 8 ' prevent using page local cache 4 while ie.busy , ie.readystate <> 4 ' readystate_complete 5 doevents 6 wend 7 if ie.document nothing 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 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 , ie.readystate <> 4 ' readystate_complete doevents wend 18 set element = ie.document.getelementsbyname("subbutton") 19 if element.length <> 1 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 , 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 new errclone ' eclone.init err, , erl if not ie nothing ie.quit set ie = nothing doevents end if ' set eclone = errorhandler.reporterror(eclone, signature) ' if eclone.stopexecution stop ' end if resume exit_ end function
it quit ie, shouldn't use object later, so:
12 if element.length <> 1 13 ie.quit 14 set ie = nothing 15 politseikontroll = "serveri vastuse formaat on vale" 16 end if if not ie nothing ie.document.getelementsbyname("docnumber")(0).value = dokument while ie.busy , ie.readystate <> 4 ' readystate_complete doevents wend <snip>
Comments
Post a Comment