IMPORT Z ACCESSU DO EXCELU

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
Kurimak
nováček
Příspěvky: 17
Registrován: 28 led 2016 10:16

IMPORT Z ACCESSU DO EXCELU

Příspěvek od Kurimak »

Zdravím potřebuji naimportovat větší množství tabulek z Accessu do Excelu.
Mám makro s využitím SQL dotazu. Když ho spustím objeví se hláška Variable not defined.
a označí se v kódu

Kód: Vybrat vše

Set Database = app.CurrentDb
Kód mám přitom podle příručky správně.

Kód: Vybrat vše

Sub Import_mdb()
Dim Cesta As String
Dim Cela_cesta As String
Dim Radek As Long
Dim Pripona As String
Dim SouboryKtere As String
Pripona = "*.mdb"
Radek = 1



Cela_cesta = ActiveWorkbook.Path & "\" & "Import" & "\"


ChDir Cela_cesta
SouboryKtere = Dir(Pripona)


Do While SouboryKtere <> ""
MsgBox SouboryKtere
Dim app As New Access.Application
app.OpenCurrentDatabase Cela_cesta & SouboryKtere
Set Database = app.CurrentDb
prikazSQL = "SELECT * FROM _Tabulka zdrojových dat_"
Set rs = Database.OpenRecordset("prikaz_SQL")
Cells(Radek, 1).CopyFromRecordset rs
Radek = Cells.CurrentRegion.Rows.Count + 1
rs.Close
SouboryKtere = Dir
Loop


End Sub
Nevíte, kde je chyba?
Uziv00

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od Uziv00 »

Deklarace proměnné Database. A až to uděláš, pak se to ozve ještě na rs.
Kurimak
nováček
Příspěvky: 17
Registrován: 28 led 2016 10:16

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od Kurimak »

A jaký typ proměnné bych měl pro Database a rs použít?
Uziv00

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od Uziv00 »

Pravděpodobně Object. Když ho nastavuješ pomocí Set.
MePExG
Level 2
Level 2
Příspěvky: 193
Registrován: 14 srp 2016 20:43

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od MePExG »

V prípade, že používate od verzie 2010 vyššie (2016) už obsahuje, môžete použiť Power Query (voľne stiahnuteľný doplnok) s ktorým môžete robiť rôzne triky (spájanie, rozkladanie agregácie, filtrácie a iné úpravy [z rôznych zdrojov rôznej veľkosti] bez potreby použitia Access-u) s údajmi.
Kurimak
nováček
Příspěvky: 17
Registrován: 28 led 2016 10:16

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od Kurimak »

Už jsem to vyřešil, doplněním deklarací. Děkuji za oba typy. Power Query je však spíše pro tvoření různých sumárních tabulek než pro automatizovaný export. Přesto děkuji.

Public Sub Import_z_Accessu()
Dim Cesta As String
Dim Odkaz As Worksheet

Dim Database As Object
Dim prikaz_SQL As String
Dim rs As Object
Dim Pripona As String
Dim SouboryKtere As String
'Vypnutí překreslování grafiky
Application.ScreenUpdating = False

'Výběr přípony importovaných souborů
Pripona = "*.mdb"
Radek = 1

' Cesta na sešit s makrem, vytvoření objektové proměnné s odkazem na list
Cesta = ActiveWorkbook.Path & "\" & "Import" & "\"
Set Odkaz = Worksheets("Access")


ChDir Cesta
SouboryKtere = Dir(Pripona)

' Vytvoření objektové proměnné spustí Access na pozadí
Dim app As New Access.Application

Do While SouboryKtere <> ""

' Otevření zdrojové databáze a vytvoření její objektové proměnné
app.OpenCurrentDatabase Cesta & SouboryKtere
Set Database = app.CurrentDb
' Příkaz SQL pro výběr sloupců a záznamů z tabulky se zapíše do textové proměnné
prikaz_SQL = "SELECT _Tabulka zdrojových dat_.* FROM [_Tabulka zdrojových dat_]"
' Vytvoření recordsetu s příkazem SQL
Set rs = Database.OpenRecordset(prikaz_SQL)
' Zkopírování vybraných záznamů do sešitu
Odkaz.Cells(Radek, 1).CopyFromRecordset rs
rs.Close
'Přičítání řádků - určení prvního neposaného řádku
Radek = Cells.CurrentRegion.Rows.Count + 1
'Uzavření aktuální databáze
app.CloseCurrentDatabase

SouboryKtere = Dir
Loop

' Ukončení Accessu
app.Quit

'Zapnutí překreslování grafiky
Application.ScreenUpdating = True

MsgBox "Hotovo"


End Sub
Kurimak
nováček
Příspěvky: 17
Registrován: 28 led 2016 10:16

Re: IMPORT Z ACCESSU DO EXCELU

Příspěvek od Kurimak »

Nevěděl by někdo, jak z tabulky v Accessu do Excelu dostanu i záhlaví tabulky. Vše se pomocí SQL zkopíruje v pořádku kromě záhlaví tabulky, které chybí.
Odpovědět

Zpět na „Kancelářské balíky“