Úvod > Fórum > Software > Windows všeobecně > VBA - MS Access - export názvů objektů

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

07.04.2013 11:27
příspěvků:5

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

© 2007-2025 PCforum.cz, všechna práva vyhrazena, veškeré informace zde uvedené jsou bez záruk, podmínky užití, kontaktní informace