Stránka 1 z 1

VBA - MS Access - export názvů objektů

Napsal: 07 dub 2013 13:22
od 23barcelona
Zdravím,

obracím se na Vás s následující prosbou. Mám databázi v MS Access 2007, která obsahuje asi 30 tabulek, 80 dotazů, 30 sestav a stejné množství formulářů. Pak tam mám pár maker a modulů. Ráda bych názvy všech objektů v databázi (tabulek, dotazů, formulářů, sestav, maker i modulů) "exportovala" do textového souboru např. MS Word. Na internetu jsem si našla kód, který zobrazí názvy objeků, ale umí je ukázat jako message box v MS Access, což je mi k ničemu. Neznáte, někdo, prosím, způsob, jak exportovat názvy objedků databáze do textového souboru, případně umíte někdo upravit kód tak, aby místo do Msg box exportoval názvy objektů?

Díky moc

Kód (myslím, že stačí upravit pouze case7, ostatní exportují vždy jen jeden typ objektů):

Private Sub ChooseObject_AfterUpdate()

Dim DB As Database, I As Integer, j As Integer, ok_cancel As Integer
Dim System_Prefix, Current_TableName, Hidden_Prefix
Dim Ok As Integer, Cancel As Integer

Ok = 1
Cancel = 2
Set DB = DBEngine(0)(0)

Select Case Me![ChooseObject]
Case 1
'System tables are excluded from the list.
For I = 0 To DB.TableDefs.Count - 1
Current_TableName = DB.TableDefs(I).Name
System_Prefix = Left(Current_TableName, 4)
Hidden_Prefix = Left(Current_TableName, 1)
If System_Prefix <> "MSys" And System_Prefix <> "USys" And Hidden_Prefix <> "~" Then
ok_cancel = MsgBox(DB.TableDefs(I).Name, 65, "TABLE NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
End If
Next I
Case 2
For I = 0 To DB.QueryDefs.Count - 1
ok_cancel = MsgBox(DB.QueryDefs(I).Name, 65, "QUERY NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
Next I
Case 3
For I = 0 To DB.Containers("Forms").Documents.Count - 1
ok_cancel = MsgBox(DB.Containers("Forms").Documents(I).Name, 65, "FORM NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
Next I
Case 4
For I = 0 To DB.Containers("Reports").Documents.Count - 1
ok_cancel = MsgBox(DB.Containers("Reports").Documents(I).Name, 65, "REPORT NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
Next I
Case 5
'Scripts are macros.
For I = 0 To DB.Containers("Scripts").Documents.Count - 1
ok_cancel = MsgBox(DB.Containers("Scripts").Documents(I).Name, 65, "MACRO NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
Next I
Case 6
For I = 0 To DB.Containers("Modules").Documents.Count - 1
ok_cancel = MsgBox(DB.Containers("Modules").Documents(I).Name, 65, "MODULE NAMES")
If ok_cancel = Cancel Then
Exit Sub
End If
Next I
Case 7
For I = 0 To DB.Containers.Count - 1
For j = 0 To DB.Containers(I).Documents.Count - 1
ok_cancel = MsgBox(DB.Containers(I).Name & Chr(13) & Chr(10) & DB.Containers(I).Documents(j).Name, 65, "ALL OBJECTS")
If ok_cancel = Cancel Then
Exit Sub
End If
Next j
Next I
End Select
End Sub

Re: VBA - MS Access - export názvů objektů

Napsal: 08 dub 2013 07:19
od Štučka