Kod VBA do importowania danych tabeli / zapytania programu Access do programu Excel

Kod VBA do importowania danych tabeli / zapytania programu Access do programu Excel
Spis treści

Importowanie tabeli programu Access do programu Excel za pomocą języka VBA (obrazy i kod)

Co to jest?

Ten kod VBA ułatwia pobieranie lub importowanie Dostęp Dane tabelaryczne lub zapytania do Excela jednym kliknięciem.

 

Dlaczego tak jest?

Dane tabeli programu Access można importować do programu Excel nawet bez otwierania bazy danych programu Access.

Jak zaimportować dane tabeli Access do Excela




Krok 1: Otwórz skoroszyt programu Excel i przejdź do narzędzia do tworzenia kodu VBA (Alt + F11) i otwórz nowy moduł.

Moduł X

Krok 2: Skopiuj i wklej w nim poniższy kod.

				
					Sub importAccessdata() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim sQRY As String Dim strFilePath As String strFilePath = "C:\DatabaseFolder\myDB.accdb" 'Zastąp 'DatabaseFolder' i 'myDB.accdb' swoim Ścieżka bazy danych i nazwa bazy danych Ustaw cnn = Nowy zestaw ADODB.Connection rs = Nowy ADODB.Recordset cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Źródło danych=" & strFilePath & ";" sQRY = "SELECT * FROM tblData" 'Zastąp 'tblData' nazwą tabeli Access DB lub nazwą zapytania, z którego chcesz pobrać dane rs.CursorLocation = adUseClient rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly Application.ScreenUpdating = False Sheet1.Range("A1").CopyFromRecordset rs rs.Close Set rs = Nic cnn.Close Set cnn = Nic Exit Sub End Sub
				
			

Krok 3: Kliknij przycisk Uruchom lub F5 (Możesz także wstawić przycisk/kształt w arkuszu Excela, a następnie kliknąć prawym przyciskiem myszy i przypisać to makro do uruchamiania za każdym razem.)

Importuj tabelę dostępu

Rekordy bazy danych Access zostały pomyślnie przesłane do programu Excel. Otwórz skoroszyt programu Excel i sprawdź dane.

Notatka: Upewnij się, że włączona jest biblioteka obiektów danych Microsoft ActiveX Narzędzia – Referencje (numer używa najnowszej wersji [6.1 w chwili pisania tego posta]).

Importuj tabelę dostępuPin



Jestem pewien, że pracujesz na wielu danych Excel, MS Access i VBA, więc ja Zdecydowanie Polecam dołączenie do poniższego formularza użytkownika Ultimate Excel VBA z bazą danych Access! Warto w siebie zainwestować! ZRÓB TO TERAZ!

Zbuduj swój własny program w świecie rzeczywistym, naucz się prawdziwego Excel VBA (makra), przekraczaj granice programu Excel dzięki kompletnemu projektowi

Anson Antoni
Anson Antoni
Anson jest współautorem i założycielem w www.askeygeek.com. Uczenie się czegokolwiek nowego zawsze było jego pasją, ASKEYGEEK.com jest wynikiem jego pasji do technologii i biznesu. Posiada dziesięcioletnie wszechstronne doświadczenie w outsourcingu procesów biznesowych, finansach i księgowości, technologiach informatycznych, doskonałości operacyjnej i inteligencji biznesowej. W trakcie swojej kadencji pracował dla takich organizacji jak Genpact, Hewlett Packard, M*Modal i Capgemini, zajmując różne role i obowiązki. Poza biznesem i technologią jest miłośnikiem kina, który spędza razem godziny, oglądając i ucząc się kina, a także Twórcy Filmowego!

10 odpowiedzi

  1. Cześć, chciałem sprawdzić, czy trzymam bazę danych Access DB na dysku współdzielonym i rozpowszechniam to makro Excela w mojej organizacji. Czy to będzie działać? Chcę, aby moje makro programu Excel odczytywało niektóre wartości z bazy danych programu Access, a następnie aktualizowało niektóre zmienne podczas otwierania programu Excel.

    Również jeśli Access nie działa, czy mogę użyć innego programu Excel przechowywanego w organizacji na jednym dysku i uzyskać do niego dostęp zamiast do bazy danych. Próbowałem, używając metody otwierania skoroszytu w moim makrze, aby odczytać mój plik Excel w OneDrive, który jest udostępniany wszystkim w mojej firmie, ale to nie zadziałało.

  2. W końcu to zrobiłem.

    używam 2 zmiennych (pole tekstowe 1 jako wartość „waluta, format R$0.000,00” i pole tekstowe 2 jako „data”, format mm/dd/rrrr)

    Kod ↓

    '================================================= ===|
    '========================================= Kauê Vaz==|
    '================================================= ===|

    Opcja Jasna

    ' Kliknij Narzędzia, Odniesienia i wybierz
    ' Biblioteka obiektów danych Microsoft ActiveX 2.0
    Sub getDataFromAccess(strValue, strDate)

    Wymnij DBFullName jako ciąg
    Dim Połącz jako ciąg, źródło jako ciąg
    Przyciemnij połączenie jako połączenie ADODB
    Przyciemnij zestaw rekordów jako zestaw rekordów ADODB
    Dim Col jako liczba całkowita
    Przyciemnij zmienną mySQL jako ciąg znaków
    Przyciemnij mySQLVariable_1 jako ciąg
    Przyciemnij strSQL jako ciąg

    mySQLVariable = strValue 'Wartość z pola tekstowego 1 (format waluty R$0.000,00)
    mySQLVariable_1 = strDate „Wartość z pola tekstowego 2 (format daty mm/dd/rrrr)

    „Kod SQL
    strSQL = „WYBIERZ * Z bazy danych GDZIE”
    strSQL = strSQL & ” [Wartość] = '” & (mySQLVariable) & „” i ”
    strSQL = strSQL & ” [Data] = '” & (mySQLVariable_1) & „” ”

    ' Baza danych, wybierz dostęp do bazy danych
    DBFullName = „C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb”

    ' Otwórz połączenie
    Ustaw połączenie = nowe połączenie ADODB
    Connect = „Dostawca=Microsoft.ACE.OLEDB.12.0;”
    Connect = Connect & „Data Source=” & DBFullName & „;”
    Connection.Open ConnectionString:=Połącz

    ' Utwórz zestaw rekordów
    Ustaw zestaw rekordów = Nowy zestaw rekordów ADODB
    Z zestawem rekordów

    ' Wyszukaj wartości przy użyciu zmiennej strSQL kodu SQL
    Źródło = strSQL
    .Open Source:=Źródło, ActiveConnection:=Połączenie

    ' Importowanie kolumn z bazy danych.
    Dla Col = 0 do zestawu rekordów.Fields.Count – 1
    Range(“A5”).Offset(0, Col).Wartość = Zestaw rekordów.Fields(Col).Nazwa
    Następny

    ' Importowanie linii z bazy danych.
    Zakres(„A5”).Przesunięcie(1, 0).KopiujZestawRekordówZestaw Rekordów
    Koniec z

    Ustaw zestaw rekordów = nic
    Połączenie.Zamknij
    Ustaw połączenie =

    ActiveSheet.Columns.AutoFit

    Napis końcowy

    Pozdrowienia

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Gratulacje!
Zrobiłeś to,
Nie zamykaj!
Podaj swoją szansę na wygraną 100 000 kredytów na postacie UberTTS
Dziękujemy za wizytę!

To wyskakujące okienko nie pokaże zależy od Ciebie Ponownie!!!

Jajko wielkanocne UberTTS 100 tys
7
Share to...