È possibile impostare la sorgente di controllo del vostro campo per un nome di funzione. Quella funzione può facilmente eseguire il tuo SQL e/o passare una variabile. Ecco la mia semplice piastra di riscaldamento per una funzione per eseguire un'istruzione SQL in un recordset e restituire il primo valore. Nel mio mondo di solito includo una clausola specifica, ma potresti sicuramente rendere questa funzione più solida per le tue esigenze.
=fnName(sVariable, iVariable)
Public Function fnName(_
sVariable as String, _
iVariable as Integer _
) As String
On Error GoTo Err_fnName
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sSQL As String
sSQL = ""
Set con = Access.CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open sSQL, con, adOpenDynamic, adLockOptimistic
If rst.BOF And rst.EOF Then
'No records found
'Do something!
Else
'Found a value, return it!
fnName = rst(0)
End If
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
Exit_fnName:
Exit Function
Err_fnName:
Select Case Err.Number
Case Else
Call ErrorLog(Err.Number, Err.Description, "fnName", "", Erl)
GoTo Exit_fnName
End Select
End Function
fonte
2009-08-21 16:12:19
C'è qualche motivo per cui i dati non devono essere inclusi nell'origine record sottostante del modulo? –