Komfortable Parameterauswahl in Access

Abfrage-Start ohne Formular

Das funktioniert alles so lange einwandfrei, wie das benötigte Formular offen ist. Wenn Sie die Abfrage aber starten, ohne dass frmPopUp geöffnet ist, erhalten Sie die Fehlermeldung aus Bild 3.

Bild 3: Fehlermeldung ohne geöffnetes Popup-Formular.
Bild 3: Fehlermeldung ohne geöffnetes Popup-Formular.

Access kann auf die Inhalte eines geschlossenen Formulars nicht zugreifen. Es könnte im Übrigen ja auch noch ganz ohne Daten sein. Daher sollten Sie diesen Datenzugriff kapseln, damit Sie das notfalls abfangen können. Anstatt also in SQL direkt auf ein Formularfeld zu verweisen, geschieht dies innerhalb einer Funktion. Listing5 zeigt den hierzu notwendigen VBA-Code.

Function HoleKundenCode() As String
HoleKundenCode = Forms("frmPopUp").cmbKundenCode.Value
End Function

Das SQL-Statement verändert sich wie in Listing 6, damit das Funktionsergebnis als Filter benutzt wird.

SELECT Bestellungen.* FROM Bestellungen WHERE (((Bestellungen.[Kunden-Code])=HoleKundenCode()));