[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Liste aller Objekte in einer Datenbank

Sprache / Programm: Access ab Version 97
Beschreibung

Die Funktion erstellt eine Liste mit den Namen aller Objekte in der aktuellen Datenbank und gibt sie zurück. Das Format kann sofort an die RowSource-Eigenschaft eines Listenfeldes zurückgegeben werden.

VBA-Quelltext
Public Function ObjektListeErstellen(Objekt As String) As String
      Dim Liste As String, Nr As Integer
      Liste = vbNullString    ' Variable löschen
      ' Objekte der Reihe nach abfragen und Namen hinzufügen
      For Nr = 0 To CurrentDb.Containers(Objekt).Documents.Count - 1
          Liste = Liste & """;""" & StringZeichenVerdoppeln(CurrentDb.Containers(Objekt).Documents(Nr).NAme)
      Next Nr
      ' Falls die Liste einen Eintrag enthält, führenden Strichpunkt löschen
      If Len(Liste) > 0 Then Liste = Mid(Liste, 3) & """"
      ObjektListeErstellen = Liste
End Function
Argumente der Funktion/Prozedur

Objekt

Text der die zurückgegebenen Objekte beschreibt, z.B.

  • "Forms" (Formulare)

  • "Reports" (Berichte)

  • "Scripts" (Makros)

  • "Tables" (gibt Tabellen, Systemtabellen und Abfragen zurück, langsame Ausführung)

  • "Modules" (Module)
Verwendete Variable

Liste

Hier werden die Namen der Objekte gesammelt.

Nr

Zähler für die Objekte. Darf nicht vom Typ ‘Byte‘ sein, da bei fehlenden Objekten (Anzahl = 0) ein negativer Wert zugewiesen würde.
Rückgabewert

Text, der die Namen der Objekte durch Semikola und Anführungszeichen getrennt in folgender Form enthält:

"Name Objekt 1";"Name Objekt 2";"Name Objekt 3"

Anwendungsbeispiel(e)...

Dem Listenfeld mit dem Namen ‘ListenFeldObjekte‘ wird der Name aller Berichte zugewiesen. Dies wird beim Öffnen des Formulars ‘Form‘ durchgeführt, indem die Ereigniseigenschaft ‘Beim Öffnen‘ des Formulars in VBA erstellt wird:

    Private Sub Form_Open(Cancel As Integer)

            Me.ListenFeldObjekte.RowSource = ObjektListeErstellen("Reports")

    End Sub

Hinweis

Damit das Listenfeld die übergebenen Argumente auswertet, muß die Eigenschaft ‘Herkunftstyp‘ (RowSourceType) auf ‘Wertliste‘ eingestellt werden. Mit dieser Einstellung können der RowSource-Eigenschaft aber nur max. 2048 Zeichen zugewiesen werden.

Das Programm benötigt die Funktion StringZeichenVerdoppeln

Anwendungsgebiete, Fehler und Warnungen

Anführungszeichen in Objektnamen führen zu Problemen bei der Verarbeitung in VBA. Wenn der Name des Objekts Anführungszeichen enthält, wird er daher nicht in die Liste der Objekte aufgenommen.