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