piątek, 13 listopada 2015

Wykorzystanie SQL dla pobierania danych z aktywnego skoroszytu 2/3

Pierwsza rzecz, która wymaga uzupełnienia względem poprzedniego wpisu (o tym samym tytule lecz z numerkiem 1) to technika dodawania nagłówków do tabeli wynikowej. Aby to uzyskać potrzebna będzie pętla oraz odwołanie do kolekcji Fields, a więc kolekcji kolumn tabeli danych. Brakujący kod wraz z komentarzem wygląda następująco:

01'...
02Sheets(2).Range("A2").CopyFromRecordset RS
03 
04'dodajemy nagłówki
05Dim i As Integer
06'pętla dla wszystkich kolumn
07For i = 0 To RS.Fields.Count - 1
08    'kolumny danych RS indeksowane są od zera, _
09     a kolumny Excela od 1
10    Sheets(2).Cells(1, i + 1).Value = RS.Fields(i).Name
11Next i
12 
13RS.Close
14'...

Po uzupełnieniu poprzedniego kodu nasza tabela wynikowa wyglądać będzie następująco (dla wariantu 2):

Bez wątpienia uzyskane nagłówki w pełni nam nie odpowiadają. Aby je poprawić musimy zmodyfikować nasze zapytanie SQL przez dodanie aliasów:
1'Wariant 2: pobranie informacji o wielkości sprzedaży dla całej tabeli
2            'uzupełnione o nazwy kolumn
3SQL = "SELECT Produkt, SUM(Ilość) AS [Ilość Razem], " & _
4            "Sum(Ilość * Cena) AS [Przychód Razem] " & _
5            "FROM [Arkusz Dane$]" & _
6            "GROUP BY Produkt"

Brak komentarzy:

Prześlij komentarz