Jednostki pamięci serwera komputera na ekranie laptopa

Excel i Access – jak połączyć bazy danych z arkuszem?

9 min. czytania

Połączenie Excel i Access polega na tym, że jeden z tych programów staje się źródłem danych, a drugi – narzędziem do ich analizy, raportowania lub dalszego przetwarzania. Dzięki temu możesz korzystać z mocnych stron obu aplikacji: Access jako relacyjna baza danych, Excel jako elastyczny arkusz kalkulacyjny.

Excel a Access – po co je łączyć?

Program Access jest zaprojektowany jako relacyjna baza danych: sprawnie przechowuje duże zbiory danych, umożliwia pracę wielu użytkowników jednocześnie, oferuje kwerendy SQL, formularze i raporty.

Z kolei Excel świetnie nadaje się do obliczeń, analiz, wizualizacji danych, tabel przestawnych i tworzenia modeli biznesowych.

Łączenie ma sens, gdy dane przechowujesz w Access, a analizujesz je w Excelu – albo odwrotnie: dane powstają w Excelu, a następnie porządkujesz i normalizujesz je w Access.

Jak można połączyć Excel i Access? – trzy podstawowe podejścia

W praktyce stosuje się trzy główne sposoby pracy:

  1. Import danych

    Dane są jednorazowo kopiowane z jednego programu do drugiego (np. z arkusza Excel do tabeli Access); po imporcie brak „żywego” połączenia – zmiany w pliku źródłowym nie aktualizują automatycznie bazy.

  2. Łączenie (linkowanie) danych

    Tworzony jest połączony obiekt (np. połączona tabela w Access, która wskazuje na arkusz Excel, albo tabela w Excelu, która wskazuje na bazę Access); dane są odczytywane na bieżąco z pliku źródłowego i można je odświeżać jednym poleceniem.

  3. Programistyczne połączenie (VBA / ODBC)

    Dane pobierane są przez kod VBA lub „Kreatora połączeń danych” przy użyciu sterownika ODBC i zapytań SQL; to rozwiązanie dla bardziej złożonych, zautomatyzowanych scenariuszy.

Przenoszenie danych z Excela do Access (import)

To najczęstszy scenariusz: masz dane w arkuszu i chcesz zbudować z nich tabelę w Access.

1. Przygotowanie danych w Excelu

Przed importem warto zadbać o jakość danych:

  • pierwszy wiersz arkusza powinien zawierać nagłówki kolumn (nazwy pól tabeli),
  • w jednej kolumnie powinien być jeden typ danych (np. wyłącznie daty albo wyłącznie liczby),
  • unikaj pustych wierszy, scalonych komórek i nietypowego formatowania w środku zakresu danych,
  • jeśli chcesz importować tylko część arkusza, zaznacz ten zakres i zdefiniuj dla niego nazwę (zakres nazwany), tak aby Access mógł go rozpoznać.

Microsoft zaleca uporządkowanie danych w Excelu przed przeniesieniem do Access, aby uniknąć błędów typów danych i problemów z relacjami.

2. Import arkusza do nowej tabeli w Access

W Access proces przebiega w kilku krokach:

  1. Otwórz bazę danych Access, do której chcesz przenieść dane, lub utwórz nową.
  2. Przejdź do zakładki Dane zewnętrzne i wybierz opcję Excel.
  3. Wybierz plik Excela i wskaż, czy chcesz zaimportować dane do nowej tabeli, czy połączyć je jako tabelę połączoną.
  4. W kreatorze importu wykonaj podstawowe ustawienia:
  • wybierz odpowiedni arkusz lub zakres nazwany,
  • zaznacz opcję „Pierwszy wiersz zawiera nagłówki”, jeśli dotyczy,
  • sprawdź, czy Access prawidłowo rozpoznał typy danych dla poszczególnych kolumn.
  1. Na ostatnim ekranie nazwij tabelę docelową („Importuj do tabeli…”) i zakończ kreator.

Po zakończeniu importu w bazie pojawi się tabela Access zawierająca dane z arkusza Excel. Dalej możesz tworzyć na jej podstawie kwerendy, formularze, relacje z innymi tabelami itd.

Łączenie (linkowanie) arkusza Excel jako tabeli w Access

Zamiast kopiować dane można stworzyć połączoną tabelę, która „patrzy” bezpośrednio na arkusz Excel. To idealne rozwiązanie, gdy arkusz pełni rolę źródła danych, ale nie chcesz rezygnować z pracy w Excelu.

1. Tworzenie połączonej tabeli w Access

Procedura jest podobna do importu, z jedną różnicą w wyborze opcji:

  1. W Access wybierz Dane zewnętrzne → Excel.
  2. Wskaż plik Excela.
  3. W kreatorze zamiast „Importuj dane do nowej tabeli” wybierz opcję „Połącz dane z źródłem danych, tworząc połączoną tabelę”.
  4. Wybierz arkusz lub zakres nazwany, nazwy pól (nagłówki) i nazwę połączonej tabeli.

Access utworzy tabelę, która przy każdym otwarciu odczytuje dane bezpośrednio z pliku Excel. Zmiany w arkuszu będą widoczne w Access, choć możliwości edycji danych z poziomu połączonej tabeli mogą być ograniczone (zależnie od struktury arkusza).

Import i połączenie danych z Access do Excela

Drugie popularne podejście to wykorzystanie Access jako głównej bazy, a Excela – jako narzędzia raportowego. W nowoczesnych wersjach Excela skorzystasz z wbudowanych mechanizmów importu danych z baz.

1. Jednorazowy import danych z Access do arkusza

Aby skopiować dane z tabeli Access do Excela:

  1. Otwórz Excel.
  2. Przejdź do zakładki Dane.
  3. W grupie Dane zewnętrzne wybierz opcję Z programu Access.
  4. Wskaż plik bazy danych Access (ACCDB/MDB).
  5. Z listy wybierz tabelę lub kwerendę, którą chcesz zaimportować.
  6. W kreatorze importu zdecyduj, czy dane mają zostać umieszczone jako zwykła tabela, tabela przestawna lub od razu tabela przestawna z wykresem.

Excel utworzy w arkuszu tabelę z danymi, nad którą możesz dalej pracować jak nad zwykłymi danymi: filtrować, sortować, tworzyć formuły i wykresy.

2. Tworzenie tabel przestawnych na bazie Access

Jeżeli zależy ci na zaawansowanej analizie, możesz od razu oprzeć tabelę przestawną na danych z Access:

  1. W zakładce Dane wybierz Z programu Access.
  2. Wskaż bazę i tabelę/kwerendę.
  3. W kreatorze importu wybierz jako sposób wyświetlania tabelę przestawną, ewentualnie od razu tabelę przestawną z wykresem.

W ten sposób Excel staje się elastyczną „nakładką analityczną” na bazę danych Access, co jest jedną z głównych zalet łączenia tych narzędzi.

3. Odświeżanie danych

Jeśli utworzone połączenie jest typu „link” (nie jednorazowy import), w wielu przypadkach możesz użyć w Excelu funkcji Odśwież danych, aby pobrać aktualny stan tabeli Access bez ponownego konfigurowania połączenia.

To kluczowe przy cyklicznych raportach – np. miesięcznych zestawieniach, gdzie Access gromadzi dane operacyjne, a Excel prezentuje wyniki w czytelnej formie.

Połączenie przez ODBC – wspólne źródło danych

Gdy zależy ci na tym, aby różne aplikacje (nie tylko Excel i Access) korzystały z tej sameej bazy, warto rozważyć połączenie przez ODBC (Open Database Connectivity).

1. Konfiguracja źródła danych ODBC (DSN)

Na komputerze konfiguruje się tzw. źródło danych ODBC (DSN), które wskazuje na konkretną bazę danych – może to być Access, SQL Server, inna baza.

Po utworzeniu DSN: Excel może użyć go jako źródła w Kreatorze połączeń danych (zakładka Dane → „Z innych źródeł” → ODBC DSN), a Access może korzystać z tego samego DSN, aby łączyć się z inną bazą (np. centralnym serwerem) i udostępniać dane dalej.

Przykładowo: na stacji roboczej dodajesz źródło danych ODBC, a w Excelu konfigurujesz je jako źródło danych dla arkusza, co pozwala pobierać dane z tej bazy do skoroszytu.

Połączenie przez VBA – automatyczne pobieranie danych

Dla bardziej zaawansowanych użytkowników możliwe jest bezpośrednie połączenie Excela z bazą Access za pomocą kodu VBA i biblioteki ADO (ActiveX Data Objects).

1. Dodanie biblioteki ADO

W edytorze VBA w Excelu można dodać referencję do biblioteki Microsoft ActiveX Data Objects, aby móc tworzyć obiekty połączenia i wykonywać zapytania SQL.

Po dodaniu referencji (Narzędzia → Odwołania → wybór biblioteki ADO) kod może tworzyć obiekt Connection, otwierać plik bazy Access i wykonywać zapytania na tabelach.

2. Schemat połączenia

Typowy schemat wygląda tak (w uproszczeniu):

  • zbudowanie ciągu połączenia wskazującego na plik ACCDB/MDB,
  • otwarcie połączenia ADO,
  • stworzenie obiektu Recordset na podstawie zapytania SQL (np. SELECT * FROM Klienci WHERE Miasto='Warszawa'),
  • wpisanie danych z Recordset w komórki arkusza (np. w pętli).

Takie podejście pozwala jednym kliknięciem przycisku w Excelu pobrać najnowsze dane z Access, przeliczyć formuły i zaktualizować raport – bez ręcznej obsługi kreatorów importu.

Typowe scenariusze współpracy Excel–Access

Poniżej znajdziesz najczęstsze zastosowania w codziennej pracy:

  • Access jako magazyn danych, Excel jako raport – dane operacyjne (zamówienia, faktury, zdarzenia) są gromadzone w tabelach Access, a Excel służy do tworzenia zestawień okresowych, budżetów i dashboardów;
  • Excel jako źródło, Access jako baza docelowa – dane są wprowadzane w arkuszu (np. plik zbierający dane od wielu oddziałów), po czym regularnie importowane lub linkowane do Access w celu dalszego przetwarzania i łączenia z innymi tabelami;
  • Cykliczny import danych – co tydzień lub miesiąc dostajesz nowy arkusz z danymi; w Access używasz funkcji „Dane zewnętrzne → Excel” raz, tworząc tabelę, a kolejne pliki dopisujesz jako append (dopisywanie danych do istniejącej tabeli);
  • Tabela przestawna z Access w Excelu – raporty sprzedaży czy analizy finansowe są tworzone w Excelu jako tabele przestawne, ale wszystkie dane źródłowe trzymasz w uporządkowanej bazie Access.

Dobre praktyki przy pracy z danymi Excel–Access

Aby połączenie było stabilne i skalowalne, stosuj poniższe zasady:

  • Porządek w strukturze danych – utrzymuj czytelne nazwy kolumn, unikaj mieszania typów danych w jednej kolumnie oraz licznych wyjątków (np. tekst w kolumnie dat);
  • Nagłówki i zakresy nazwane – zawsze stosuj pierwszy wiersz jako nagłówki i rozważ użycie zakresów nazwanych w Excelu dla fragmentów arkusza wykorzystywanych w Access;
  • Klucze i relacje w Access – po imporcie danych z Excela do Access zadbaj o utworzenie kluczy podstawowych, relacji między tabelami i przemyślanej struktury (normalizacja);
  • Rozdzielenie warstw: dane vs raporty – dane bazowe trzymaj w Access, a raporty, tabele przestawne i analizy – w Excelu; to naturalny podział ról obu narzędzi;
  • Kontrola uprawnień i trybu pracy – upewnij się, że baza Access nie jest otwarta w trybie „tylko do odczytu” i że masz uprawnienia do wprowadzania zmian, jeśli chcesz edytować dane z poziomu połączonych tabel.