Gepolsterte Parameter

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 2. Access kann auf die Inhalte eines geschlossenen Formulars nicht zugreifen. Es könnte im Übrigen ja auch noch ganz ohne Daten sein.

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

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. Listing 5 zeigt den hierzu notwendigen VBACode.

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()));