» Poradna » Programy

VBA - MS Access - export názvů objektů, včetně názvu zdroje, ze kterého čerpají

 |   |  Microsoft Windows 7 IE 9.0

Zdravím, mám databázi v MS Access 2007. Vzhledem k velkému počtu dotazů, formulářů a sestav by se mi hodilo znát VBA kód, který umí "exportovat" do textového souboru názvy těchto objektů, včetně názvů tabulek a dotazů, ze kterých tyto objekty čerpají. Můžete mi poradit, prosím? DíkyKód, který umí exportovat názevy objektů databáze, za který moc děkuji uživateli Pavlovi, je: Sub ObjectNames() Dim db As Database Dim td As TableDef Dim doc As Document Dim i As Integer Dim fnum Set db = CurrentDb() fnum = FreeFile Open CurrentProject.Path & "\ObjectNames.txt" For Output As #fnum For Each td In db.TableDefs If Left(td.Name, 4) <> "MSys" Then Print #fnum, "Tables" & vbTab & td.Name End If Next td For i = 0 To db.QueryDefs.Count - 1 Print #fnum, "Queries" & vbTab & db.QueryDefs(i).Name Next i For Each doc In db.Containers("Forms").Documents Print #fnum, "Forms" & vbTab & doc.Name Next doc For Each doc In db.Containers("Reports").Documents Print #fnum, "Reports" & vbTab & doc.Name Next doc For Each doc In db.Containers("Scripts").Documents Print #fnum, "Macros" & vbTab & doc.Name Next doc For Each doc In db.Containers("Modules").Documents Print #fnum, "Modules" & vbTab & doc.Name Next doc Set db = Nothing Close #fnum End Sub

Odpovědi na otázku

 |   |  Microsoft Windows Vista Opera 9.80

Kód pro výpis závislostí jsem našel na téhle stránce:http://flylib.com/books/en/1.129.1.105/1/Procedura ShowDependencies je vypisuje do okna "Immediate" (pokud není ve VBA editoru vidět, zobrazí se z menu View nebo Ctrl+G). Z okna je možné si výstup zkopírovat jinam.Protože se při kopírování kódu z výše uvedené stránky nezachovává odřádkování, dal jsem to ještě na pastebin (vč. hlavní procedury ObjectDependencies, která volá výpis závislostí postupně pro jednotlivé objekty)http://pastebin.com/9pFBeeiWVýpis závislostí má ale pár háčků. První je, že ne všechny objekty jsou podporované. V helpu je uvedeno:Informace o závislostech objektů jsou v databázi Access generovány jen pro tabulky, dotazy, formuláře a sestavy. Nejsou k dispozici pro následující objekty: - datové stránky, makra a moduly v databázi; - objekty nepodporované funkcí automatických oprav názvů, například akční dotazy a dotazy SQL, včetně sjednocovacích dotazů a definičních dotazů, předávacích dotazů a poddotazů; - projekty aplikace Access. Poznámka: Vnořené dotazy jsou podporovány jen částečně. Informace o závislostech jsou vygenerovány jen pro dotaz na nejvyšší úrovni. V seznamu objektů, na kterých dotaz závisí, navíc nejsou uvedeny zdrojové tabulky a dotazy vnořeného datového listu vyhledávacích polí dotazu. Informace o závislostech nejsou k dispozici ani tehdy, nemáte-li oprávnění k otevření objektu v návrhovém zobrazení. Nevím jak u Accessu 2007, ale v 2003 je možnost zobrazit Závislost objektů i graficky (v menu Zobrazit). V příslušném okně jsou pak vidět i některé Ignorované objekty. To by mohlo sloužit pro kontrolu toho, co se ve skriptu nevypíše.A ještě je důležité, aby bylo povoleno Sledování informací o automatických opravách názvů. To se kdyžtak nastavuje v Možnostech Accessu.Pozor na případné zapnutí volby: Provádět automatické opravy názvů. Jestli jste ji doposud nepoužívali, tak po její aktivaci se při přejmenování např. nějaké tabulky, automaticky provede úprava názvu v dalších, závislých objektech.To je užitečná funkce, ale je dobré znát tyto důsledky. Někdy to třeba nemusí být žádoucí. Pro běh skriptu ale stačí zvolit pouze Sledování (to vytváří a následně aktualizuje mapu názvů).Možná bude dobré udělat před spuštěním skriptu zálohu databáze, anebo to spustit na kopii.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 19.0

Diky moc :)

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: .doc, Vba ms, Next, Print




Určitě si přečtěte

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 56

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

** Apple aktualizoval notebooky MacBook Pro, dostaly nový hardware ** Těšit se můžete na nové procesory a větší paměť ** Cena nejvybavenějšího modelu překročí 200 tisíc korun

Martin Miksa | 99

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

** Sonda LRO pořídila z oběžné dráhy Měsíce zajímavé snímky ** Jsou na nich vidět artefakty všech misí programu Apolla, které přistály na povrchu Měsíce ** Jde například o části lunárních modulů, rovery a dokonce i vlajky

Petr Kubala | 59

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 141


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji