Telefonszámunk: 1-472-0679

[Resolved] Power Query alapú táblák automatikus frissítése

Kezdőlap Fórumok Excel témák [Resolved] Power Query alapú táblák automatikus frissítése

Topic Resolution: Resolved
9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • #4612
    zoltan.szeles
    Felhasználó

      Szia Imi!

      Lenne egy elég összetett kérdésem. Sok (és egyre több) olyan táblám van, aminek mindegyike Power Queryvel előállított adatokon alapul (van ahol egy sima listán, van ahol kimutatáson) De ezek is csatolt adatok, egy Access adatbázisból érkeznek a PQ-be, ami naponta többször változik. Az Access adatok frissítése viszonylag gyorsan és könnyen megoldható (mellesleg erre csatlakozik még pár Power Bi kimutatás is, de ez szintén gyorsan frissíthető). Viszont ahogy írtam is, ahogy a felhasználók belejönnek egyre több féle listát kérnek tőlem, amiket Excelben csinálok és jó lenne 1-2 naponta mindet végigfrissíteni. Lehet ezt pl makrózni? Vagy milyen úton induljak szerinted, hogy tudnám ezt legalább részben automatizálni, hogy ne kelljen minden nap az összes Excelt megnyitni, adatot, esetleg még külön kimutatást frissíteni, stb?

      Esetleg felhő alapú megoldás is szóba jöhet, mert utána amúgy is az egészet oda töltöm. Gondoltam arra is már, hogy az Accest kihagyom és mindent a Power Queryben csinálok meg amit most az Access csinál, de elég nagy méretű adatbázisról van szó ezért egyelőre ebbe nem mertem belevágni.

      • A témakör módosításra került: 6 years telt el-zoltan.szeles.
      • A témakör módosításra került: 6 years telt el-zoltan.szeles.
      • A témakör módosításra került: 6 years telt el-horvimi.
      • A témakör módosításra került: 6 years telt el-horvimi.
      #4615
      zoltan.szeles
      Felhasználó

        Bocs valamiért mindig Pivotnak hívom a Queryt, a szövegben javítottam, a címben sajnos nem.

        #4617
        horvimi
        Adminisztrátor

          Látom, javítottam. 🙂
          Ha jól értem, akkor azt akarod csinálni, hogy bizonyos Excel fájlokat megnyitni, frissíteni az adatkapcsolatot, majd menteni és bezárni. Mindezt valahogy automatikusan.

          Nekem elsőre ez jut eszembe:
          Egy Excel makrós munkafüzet munkalapjára egy táblázatba soronként felvenném a frissítendő munkafüzetek útvonalait.
          Majd írnék egy makrót, ami ezeken egyesével végigmegy, és
          1. Kinyit
          2. Frissít mindent
          3. Ment
          4. Bezár

          Ezt a makrós fájlt kellene 1-2 naponta elindítani kézzel.

          Következő lépés lehet a jövőben, hogy ez az egy makrós fájl is magától induljon el, és a munkafüzet megnyitásához rendelt eseményvezérlőben fusson a fenti ciklus, de az legyen egy későbbi projekt.

          Imre

          #4618
          zoltan.szeles
          Felhasználó

            Köszi! Igen, erre gondoltam én is, igazából csak azt nem tudom, hogy makróban hogyan kell az adatok frissítése utasítás kiadni, illetve kimutatást frissíteni.

            B verzióként gondoltam még arra, hogy ha az adatokat esetleg a már felhőben lévő BI adatbázisból venném akkor a felhasználók maguk tudnák a megnyitott táblát frissíteni, de ez nagyon elméleti dolog, a valóságban a BI-ból igazából még egy használható excelt sem tudok kiexportálni, nemhogy csatolni belőle ami szükséges, pláne, hogy a webes Excel eléggé hadilábon áll a csatolásokkal. Ezt inkább csak amiatt írom, hogy szerinted lehetséges-e (ha pl kicsit még képzem magam a BI-ban) vagy ez eleve hülyeség?

            #4620
            horvimi
            Adminisztrátor

              Az adatok menüben van egy „Az összes frissítése /Refresh All” gomb. Ez a kapcsolatokat és a PIVOT táblákat is frissíti.
              Vedd fel rögzítővel.

              #4621
              zoltan.szeles
              Felhasználó

                Azt szoktam használni „kézzel”, de nem is tudom ez miért nem jutott eszembe, hogy így felvegyem, látszik, hogy sajnos a makrókat azóta nem sokat használtam. Köszi!:)

                #4879
                zoltan.szeles
                Felhasználó

                  Szia Imre!

                  Sajnos csak most volt időm újra foglalkozni ezzel a kérdéssel, de sikerült megoldani, nagyon jól megy, viszont 2-3 tábla esetén amikor makróval frissítem őket kapok egy üzenetet, miszerint: Ezzel megszakít egy folyamatban lévő frissítést, mégis folytatja? Választási lehetőségek Ok vagy Mégse, igazából nem értem miért kapom ezt (ha makró nélkül frissítem akkor nincs) de az Ok-val minden gond nélkül tovább is megy, csak ez megakasztja a makrót, ha pl ütemezve éjjel szeretném lefuttatni. Mivel makró nélkül nincs ilyen üzenet így felvenni sem tudom. Van arra parancs ami automatikusan „leokéz” egy ilyen üzenetet?

                  #4881
                  horvimi
                  Adminisztrátor

                    Az lehet a probléma, hogy az előző frissítés még nem fejeződött be, mikor a ciklus a következővel dolgozik, és azt is frissíteni szeretné.
                    Erre különböző kísérletek vannak. Ezek közül az egyik, amire elég sok pozitív visszajelzést találtam az, hogy a kapcsolatokban ki kell kapcsolni a háttérfrissítés engedélyezését.
                    Ezt vagy a makróval lehet megcsinálni menet közben, vagy a fájlokon kézzel végigmész egyszer, és beállítod mindegyiknek:
                    Kézzel:
                    Adatok->kapcsolatok->Tulajdonságok (Itt találsz egy háttér frisítési beállítást

                    Makróval:

                    Sub Refresh_All_Data_Connections()
                    
                        For Each objConnection In ActiveWorkbook.Connections
                            'Get current background-refresh value
                            bBackground = objConnection.OLEDBConnection.BackgroundQuery
                    
                            'Temporarily disable background-refresh
                            objConnection.OLEDBConnection.BackgroundQuery = False
                    
                            'Refresh this connection
                            objConnection.Refresh
                    
                            'Set background-refresh value back to original value
                            objConnection.OLEDBConnection.BackgroundQuery = bBackground
                        Next
                    
                    End Sub
                    

                    Tehát a megnyitás és a mentés közé ez a kód kellene, ami minden OLEDB típusú kapcsolatot frissít az aktuális munkafüzetben.

                    Próbáld ki, és jelez vissza lszi!

                    Imre

                    #4884
                    zoltan.szeles
                    Felhasználó

                      Szia!

                      Így tökéletesen fut, mindkét megoldást próbáltam, mindkettő jó, de végül maradtam a makrónál. Köszönöm!

                    9 bejegyzés megtekintése - 1-9 / 9
                    • Be kell jelentkezni a hozzászóláshoz.