Data Watch - Einsatz am Limit

Namen per VBA finden

Daher werden die zu berücksichtigenden Abfragen per VBA ermittelt, damit diese Einschränkungen nicht gelten. In Listing 6 sehen Sie den Code, um alle Abfragen mit bestimmtem Namensanfang zu ermitteln. Bei der Namenswahl ist bewusst darauf geachtet worden, dass die „Vorsilben“ gleich lang sind, weil dann einfach die ersten sieben Zeichen mittels Select-Case-Statement geprüft werden können. Für jede gefundene Abfrage zählen Sie die Anzahl der Datensätze und zeigen diesen mit Listing 6 an, wenn er größer ist als 0. Das ist zwar technisch so in Ordnung, doch nicht besonders benutzerfreundlich. Es gibt weder eine Gesamtbewertung noch eine detaillierte Liste, dafür aber eine Unmenge von Messageboxen, die bestätigt werden müssen.

Sub GrenzwerteMitMsgbox()
Dim qryJede As QueryDef
Dim lngAnzahl As Long
For Each qryJede In CurrentDb.QueryDefs
Select Case LCase(Left(qryJede.Name, 7))
Case "qryinfo", "qrymldg", "qrystop"
lngAnzahl = DCount("*", qryJede.Name)
If lngAnzahl > 0 Then
MsgBox qryJede.Name & " hat " & _
lngAnzahl & " Datensätze"
End If
End Select
Next
End Sub

Bessere Darstellung

Es wäre kein besonderer Aufwand, alle gefundenen Abfragen in einer Listbox mit ihren Ergebnissen anzuzeigen. Aber deren fehlende Sortierbarkeit sowie die eher bescheidene optische Gestaltung spricht dafür, stattdessen ein Endlosformular zur Anzeige einzusetzen. Jedes datengebundene Formular in Access muss allerdings auf Tabellen/Abfragen basieren, und genau diese Bedingung ist hier nicht erfüllt, da die Werte ja per VBA ermittelt wurden.