Ich habe die folgende Funktion erstellt, um dieses Problem zu lösen. Ich mag diese Lösung, weil Sie sich nicht mit gespeicherten Abfragen befassen müssen, die Ihr Navigationsfenster oder lange Umgehungslösungen blockieren.
Public Function DAOLookup(SQLstatement As String)
'once you are finished with your SQL statement, it needs to be
'formatted for VBA and it also needs to be on one line.
'example, you would set the control source of a text box to the following
'=DAOLookup("Select ls_number FROM FROM ls INNER JOIN ls_sort ON ls.ls_id = ls_sort.ls_id WHERE ls_sort.number =" & forms!frmMenu!combo_sort & ";")
'Please note, this function only work for single column single row sql statements
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(SQLstatement)
If Not rs.BOF Then rs.MoveFirst
If rs.BOF And rs.EOF Then Exit Function
DAOLookup = rs(0)
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Function
So habe ich es meinem Chef erklärt. "Sie können eine DLookUp() - Funktion als Steuerquelle eines Textfelds haben. Warum nicht einfach eine Funktion schreiben, die eine Abfrage ausführt und die Funktion als Steuerquelle verwendet?" Probieren Sie es aus, es hat meine Situation behoben.
Gibt es einen Grund, warum die Daten nicht in der zugrunde liegenden Datenquelle des Formulars enthalten sein sollten? –