Excel VBA adatok importálása weboldalról 462 hiba
2020-03-04T15:47:16+01:00
2020-04-02T10:52:20+02:00
2022-08-11T19:00:49+02:00
AKA
Sziasztok, 
Belső hálózaton elérhető weboldalról (ajax) szeretnék adatokat Excelbe menteni makróval. Első lépésben megnyitni az oldalt, feltölteni megfelelő paraméterekkel, majd lekérdezni az oldalon a szükséges adatokat.
A probléma az, hogy az oldal megnyitása után már nem kapok választ az IE-től, 462-es hibával megáll a makró. Az első .readyState már kiáll hibára.

Valami ötlet? (próbáltam SHDocVw.dll keresztül is)

Sub getdata_reportserver() 'Dim myBrowswer As SHDocVw.InternetExplorer Dim Start_date As Object Dim End_date As Object Dim Start_time As Object Dim End_time As Object Dim terület As Object Dim GÉP As Object Dim GOMB As Object Set ie = CreateObject("InternetExplorer.Application") With ie .Visible = True .Navigate2 "http:///ReportServer/Pages/ReportViewer.aspx?/Signals_HistoryData" While .Busy Or .readyState < 4: DoEvents: Wend With .document .getElementByName("ReportViewerControl$ctl04$ctl05$txtValue").Value = "06:00" .getElementByName("ReportViewerControl$ctl04$ctl03$txtValue").Value = Date .getElementByName("ReportViewerControl$ctl04$ctl07$txtValue").Value = "18:00" .getElementByName("ReportViewerControl$ctl04$ctl07$txtValue").Value = Date .getElementByName("ReportViewerControl$ctl04$ctl11$ddValue").Value = "5" While .Busy Or .readyState < 4: DoEvents: Wend .getElementByName("ReportViewerControl$ctl04$ctl13$ddValue").Value = "2" .getElementByName("ReportViewerControl$ctl04$ctl17$txtValue") = "BATCH" While .Busy Or .readyState < 4: DoEvents: Wend .getElementByName("ReportViewerControl$ctl04$ctl00").Click End With End With End Sub
Mutasd a teljes hozzászólást!
Sziasztok,

Egyik működő megoldás:
Atomsvc fálj segítségével lehet csatlakozni a SSRS kiszolgálóhoz.
A szöveges fájlt a lehet szerkeszteni VBA-segítségével.
A riportot hozzá lehet rendelni az egyik munkalaphoz (DataFeed connection)

Atomsvc fájl mentése:
Import Data from a Reporting Services Report

Excel adatkapcsolat létrehozása:
SSRS Atom Feeds to Stream Live Results to Excel
Mutasd a teljes hozzászólást!

  • PHPSPREADSHEET?
    Mutasd a teljes hozzászólást!
  • Sajnos nem ismerem a PHPSPREADSHEET-et.
    A belső intranet hálózaton futó riport szerverről szeretnék adatokat Excelbe lementeni és nem fordítva. Lehetőségeim eléggé korlátozottak. Nem férek hozzá az adatbázishoz, csak kizárólag ezen a webes felületen keresztül érem el az adatokat. Napi szinten több riportot kell összefésülni, ami eléggé időigényes munka. Ezt szeretném Excel VBA segítségével automatizálni amennyire csak lehet. 
    Az Excel engedélyezett, több felhasználó esetén nincs lehetőségem másra, mert nem tudok nekik extra programokat telepíteni. 
    Folyamat: weboldal megnyit -> weboldalon változók kitöltése -> adat lekérés indítása -> adatok mentése Excelbe. (ez utóbbi be van építve a weboldalba.) Sajnos amint a VBA megnyítja az oldalt a makró elveszíti a felügyeletet az IE felett és 462 run time hibával megáll.
    Mutasd a teljes hozzászólást!
  • oki értem. 

    elképzelhető hogy az excel túl gyors a weboldalhoz képest,
    arra gondolok, hogy elindítod a betöltést, és azonnal neki állsz lekérni adatokat úgy, hogy az ie még nem renderelte ki az oldalt. 
    a megnyitás után rakjál be a excelbe egy várakozás-t .
    Application.Wait (Now + TimeValue("0:00:10"))
    Mutasd a teljes hozzászólást!
  • F8 segítségével soronként futtatva a makrót is ez a hiba. A weboldal egy SSRS server. Az eredetileg megnyitott oldal futása közben egy új oldalt generál és a régit valószínűleg bezárja. A neten ezt olvastam. Ezért nem találja meg a makró a korábban nyitott oldalt. 

    IE.navigate
    után ami az oldalra hivatkozna kiáll hibára, teljesen mindegy hogy mi az:

    IE.ReadyState IE.Busy IE.Document
    F8 futtatás közben a Windows is ablakot vált: A focus az IE-re kerül, vissza kell lépni a VBA-ba, hogy tovább lehessen léptetni a makrót. 
    Az 
    IE.Visible = False
    ellenére az IE megjelenik, de csak a
    IE.navigate
    után.
    Mutasd a teljes hozzászólást!
  • Sziasztok,

    Egyik működő megoldás:
    Atomsvc fálj segítségével lehet csatlakozni a SSRS kiszolgálóhoz.
    A szöveges fájlt a lehet szerkeszteni VBA-segítségével.
    A riportot hozzá lehet rendelni az egyik munkalaphoz (DataFeed connection)

    Atomsvc fájl mentése:
    Import Data from a Reporting Services Report

    Excel adatkapcsolat létrehozása:
    SSRS Atom Feeds to Stream Live Results to Excel
    Mutasd a teljes hozzászólást!
abcd