Benutzung auf eigene Gefahr ! |
Beschreibung |
Erstellt eine Liste entweder aller Tabellen (ohne Systemtabellen und versteckte Tabellen) oder erstellt eine Liste aller Auswahl- und Kreuztabellenabfragen (die anderen Abfragetypen lassen sich nicht wie eine Tabelle öffnen und bearbeiten). Das Ergebnis kann z.B. der RowSource-Eigenschaft eines Listenfeldes zugewiesen werden. |
VBA-Quelltext |
' Überprüft, ob eine Tabelle oder Abfrage mit dem angegebenen Namen existiert Public Function ListeAllerRecordSets(TabelleOderAbfrage As Integer, Fehler) As String Dim RecSet As Object, Liste As String Liste = """" If TabelleOderAbfrage = acQuery Then ' Liste der Abfragen erstellen For Each RecSet In CurrentDb.QueryDefs If (RecSet.Type = dbQCrosstab) Or (RecSet.Type = dbQSetOperation) Or _ (RecSet.Type = dbQSelect) Then Liste = Liste & RecSet.Name & """;""" End If Next RecSet Else ' Liste der Tabellen erstellen For Each RecSet In CurrentDb.TableDefs If Not CBool(RecSet.Attributes And (dbSystemObject Or dbHiddenObject)) Then Liste = Liste & RecSet.Name & """;""" End If Next RecSet End If If Len(Liste) > 1 Then ListeAllerRecordSets = Left(Liste, Len(Liste) - 2) End Function |
Argumente der Funktion/Prozedur |
|
Verwendete Variable |
|
Rückgabewert |
Liste aller Tabellen oder Liste aller Abfragen in der Form "Name1";"Name2";"Name3", so daß der Rückgabewert sofort der Row-Source-Eigenschaft eines Kombinations- oder Listenfeldes zugewiesen werden kann. |
Anwendungsbeispiel(e)... |
Dem Listenfeld (sinngemäß ist auch ein Kombinationsfeld möglich) mit dem Namen TabellenListe werden die Namen aller Tabellen und Abfragen 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) |
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. Benötigt die Funktion ' |
Anwendungsgebiete, Fehler und Warnungen |
Das Programm kann die Namen von Tabellen bzw. Abfragen, die ein " enthalten, nicht verarbeiten, daher werden solche Namen nicht ausgegeben und statt dessen eine Fehlermeldung ausgegeben. Verwendet die DAO Objektbibliothek. Ab Access 2000 muss diese explizit im VBA-Editor über 'Extras' -> 'Verweise' als 'Microsoft DAO 3.6' (oder höher) eingebunden werden und vor die 'Microsoft ADO 2.1' (oder höher) Bibliothek gesetzt werden. |