Data Watch - Einsatz am Limit

Namen in MSysObjects finden

Besser wäre es, einfach alle Abfragen mit den passenden Namen per VBA dynamisch zu erkennen. Zwar ließen sich deren Namen durchaus mit einer Abfrage ermitteln, wenn Sie bereit sind, mit Access-internen MSys-Tabellen zu arbeiten. Jede Access-Datenbank verwaltet sich nämlich selbst in Tabellen. In MSysObjects findet sich beispielsweise die Liste aller Datenbankobjekte, auf die Sie dann per Abfrage wie in Listing 5 und Bild 2 lesend zugreifen könnten.

Bild 2: Abfragenamen aus MSysObjects ermittelt.
Bild 2: Abfragenamen aus MSysObjects ermittelt.

Damit würden Sie sozusagen im System bleiben und alle Analysen ausschließlich mit Abfragen lösen. Leider benötigen Sie für den Lesezugriff auf MSysObjects Admin-Rechte, in einer Datenbank mit differenzierten Zugriffsrechten funktioniert das also schon nicht mehr.

SELECT Mid([Name],4,4) AS Typ, MSysObjects.Name,
DCount("*",[Name]) AS Anzahl
FROM MSysObjects
WHERE (((MSysObjects.Name) Like "qrySTOP*" Or
(MSysObjects.Name) Like "qryMLDG*" Or
(MSysObjects.Name) Like "qryINFO*"))
ORDER BY Mid([Name],4,4) DESC;