HTML

XLS lekérdezés

2009.11.12. 07:38 SQL

"El tudnád küldeni a heti riportot, Excelben?"

Nagyvállalatnál dolgozó, adatbázisokkal foglalkozó kollégák gyakran kapják ezt a kérést. Mi sem egyszerűbb - összedobom a lekérdezést, és átemelem Excelbe, hadd örüljön a főnök. És itt kezdődik a bonyodalom, legalábbis MS-SQL-t használók számára. (A többi RDBMS-sel kapcsolatban nincsenek tapasztalataim, de a lejjebb látható megoldás általános, bárhol alkalmazható szükség esetén)

Mert ugyan megvan a lekérdezésem, prímán fut is Management Studio-ban (vagy Query Analyzerben), de átrakni Excelbe, még a XXI. században sem triviális. Lehetőségek:

  • Lefuttatom Grid nézetben (CTRL-D), kijelölöm, berakom XLS-be - csak éppen mezőnevek nem lesznek, azokat kézzel át kell írni az első sorba.
  • Text módban futtatom (CTRL-T), kijelölöm, be XLS-be. Persze minden ömlesztve az első oszlopba fog kerülni. Sebaj, átkonvertálom (Text to Data), kicsit igazítok rajta
  • Átmeneti táblába berakom (SELECT INTO), majd Export wizzard-dal kirakom XLS-be

No, ez macerás. Főleg, ha többször kell megtenni. Ráadásul az Excel hajlamos lesz például a dátum-mezőket számként megjeleníteni. Brrr....

Mennyivel egyszerűbb lenne, ha el lehetne menteni XLS-ben a query eredményét közvetlenül Management Studióból... De nem lehet.

Akkor nincs más hátra, mint előre - nekünk kell ezt megoldani.

De ha már nekikezdünk, az legyen

  • Univerzális
  • Több feladatra alkalmas
  • Könnyen használható
  • Dermoprotektor, és lehetőség szerint hidratáló is

 Essünk neki.

Először is nézzük, milyen adatokra van szükségünk a lekérdezésekhez:

  • Szervernév, adatbázisnév
  • Belépési adatok (MS-SQL-nél preferált a windows authentikáció, így ezt én kihagyom)
  • Maga a lekérdezés
  • Ha több lekérdezést csinálnánk, akkor meg kell adni, hogy melyiknek hova tegye az Excel az eredményét.

 

Alakul. Már csak a futtatás van hátra. Írjunk egy makrót, ami

  1. Végigmegy a lekérdezéseken
  2. Lefuttatja őket az adott helyen
  3. Az eredmény berakja a megfelelő sheet-re, és hogy még szebb legyen, elé is írja a Title mező értékét, hogy még azt se nekünk kelljen bepötyögni. A "Main title" pedig jelenjen meg a sheet elején. (Tehát minden sheetnek lesz egy neve, lesz az elején egy "Main title", majd lekérdezésenként külön elnevezése is.

A végén pedig tegyünk egy jó nagy RUN gombot a lekérdezések alá - ebben az a legjobb, hogy bárki meg tudja nyomni míg mi kávézunk ugyebár..;-) (Persze jogosultságoknak rendben kell lennie)

A végeredmény itt található. Ötleteket használtam fel hozzá a netről, de a végleges kidolgozás saját munka. Lehet még tovább finomítani (paraméterek elhelyezése, hibakezelés, jobb sheet-kezelés, egyéb nyalánkságok), de valamit élvezetet hagyok Nektek is :-)

 

Használjátok egészséggel!

Szólj hozzá!

Címkék: sql excel kezdő haladó xls lekérdezés excelbe

A bejegyzés trackback címe:

https://sqlguru.blog.hu/api/trackback/id/tr761516561

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása